Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];

Вниз

сравнение времени   Найти похожие ветки 

 
pavel_guzhanov   (2003-12-03 08:45) [0]

Здравствуйте!
У меня возник следующий вопрос. В программе надо проверить условие: Если системные дата/время больше например 23:00 текущей даты и меньше 01:30 следующего дня, то выполнить определенные действия. Подскажите пожалуйста, как это можно реализовать на Delphi


 
ЮЮ   (2003-12-03 09:08) [1]

> и меньше 01:30 следующего дня = ИСТИНА для любого времени СЕГОДНЯ

var Hour, Min, Sec, MSec: Word

DecodeTime(Time, Hour, Min, Sec, MSec);
if (Hour >= 23) or (Hour < 1) or (Hour = 1) and (Min < 30) then begin
//б..., чуть не проспал !!!
end;


 
Silver Alex   (2003-12-03 09:55) [2]

function IsPeriod(OnDate,FromDate,ToDate: TDateTime): Boolean;
begin
Result:=(OnDate>FromDate) and (OnDate<ToDate);
end;

if IsPeriod(Now,EncodeDateTime(2003,12,2,23,30,0,0), EncodeDateTime(2003,12,3,13,30,0,0)) then
ShowMessage("Hello");


 
Johnmen   (2003-12-03 10:10) [3]

Общее выражение:
( (vStart<vStop) and (vStart<=vNow) and (vNow<=vStop) ) or
( (vStart>=vStop) and ( (vStart<=vNow) or (vNow<=vStop) ) )

где vStart, vStop, vNow - время начальное, конечное, текущее


 
Anatoly Podgoretsky   (2003-12-03 10:27) [4]

А кто знает, что 01:30 это следующий день, а не вчерашний?
Не надо хранить время отдельно от дней и сравнивать, для сравнения нужно полное время


 
Danilka   (2003-12-03 10:35) [5]


> Если системные дата/время больше например 23:00 текущей
> даты и меньше 01:30 следующего дня, то выполнить определенные
> действия. Подскажите пожалуйста, как это можно реализовать
> на Delphi


гы, а что, системная дата не равна текущей?
вероятно - машина времени, не видел еще реализацию на дельфях.


 
Anatoly Podgoretsky   (2003-12-03 11:55) [6]

StartDate := Date + StrToTime("23:00:00");
EndDate := Date + 1 + StrToTime("01:30:00");
If (Now >= StartDate) and (Now <= EndDate) then ...


 
Silver Alex   (2003-12-03 12:12) [7]


> EndDate := Date + 1 + StrToTime("01:30:00");

все таки надежнее

EndDate := Date + 1 + EncodeTime(13,30,0,0);


 
Anatoly Podgoretsky   (2003-12-03 12:15) [8]

Ну это уже не относится к алгоритму, а к реализации, вопросы надежности и реализации остаются на его совести, задача дать идею и пусть думает.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
1-36759
Labert
2003-12-01 20:06
2003.12.12
Как сделать подключение форм в run time


11-36585
tamerlan311
2003-03-25 15:55
2003.12.12
KOL_HHC_Unit v2.0


1-36728
Makhanev A.S.
2003-12-02 00:51
2003.12.12
Как Windows присваивает Handle Окнам?


1-36676
ИМХО
2003-12-03 06:48
2003.12.12
TListView - выделить строку жирным цветом


1-36611
mynameis
2003-12-01 15:04
2003.12.12
Перемещение мыши по десктопу из моей программы.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский