Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.12;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
14-36821
man-1982
2003-11-20 19:50
2003.12.12
Где можно достать в электронном виде справочник по функциям


1-36715
MakNik
2003-12-02 13:37
2003.12.12
MessageDlg


1-36706
Dysan
2003-12-02 14:43
2003.12.12
Tchart


8-36766
F0rest
2003-08-18 20:03
2003.12.12
Формат PSD


7-36863
Morg
2003-10-05 01:04
2003.12.12
Пичатаем !!!