Главная страница
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.011 c
1-36695
alex_M
2003-12-02 18:09
2003.12.12
Есть 2 TListView, как определить какое из них активно.


1-36645
Gorn
2003-11-30 20:58
2003.12.12
Дистрибютив программы и Rave


1-36683
lena19
2003-12-02 23:57
2003.12.12
создание обекта и его собития


6-36780
man2k
2003-10-15 03:42
2003.12.12
Как написать на WIN API закачку файла на FTP?


3-36541
Goida
2003-11-20 22:12
2003.12.12
Что такое FetchAll?