Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
6-36792
Calm
2003-10-17 10:55
2003.12.12
Организация управления прог в сети. Как лучше реализовать?


3-36500
Kott
2003-11-23 01:54
2003.12.12
MSAccess


7-36877
Davinchi
2003-10-04 12:05
2003.12.12
Предотвращение устнановки рограмм на Win98


1-36682
Walrus
2003-12-02 21:59
2003.12.12
Шаблоны или что-то в этом духе


14-36824
FoxPro
2003-11-19 13:34
2003.12.12
Вопрос по поводу FoxPro




   Наверх