![]() |
Сравнение времени в Delphi
Поставлена такая задача: в программе задается временной промежуток От: (ЧЧ:ММ)
До: (ЧЧ:ММ) Программа должна в данном промежутке времени каждую секунду выполнять некое действие. Как реализовать корректное сравнение времени, учитывая все комбинации временных промежутков? Например для: от 13:15 до 17:10 от 15:00 до 00:00 от 15:15 до 14:20 от 13:10 до 13:15 ?? Помогите пожалуйста, замучался уже с if..then :( |
GetTickCount в начале промежутка и в конце. А размер Tick'а узнать - GetSystemTimeAdjustment. За подробдностями - msdn.microsoft.com
|
mrac
А почему бы не воспользоваться дмумя таймерами: 1 - каждую секунду проверяет текущее время на принадлежность указанному промежутку и включает/выключает в зависимости от этого второй таймер. 2 - каждую секунду выполняет нужное действие. В принципе, можно проверку в первом таймере делать и не каждую секунду, а вычислять ее в зависимости, опять-таки, от разницы между текущим временем и началом данного промежутка. А текущее время определить просто: Код:
var |
Да нет, вы не поняли.. Я как раз так и делаю, как Ghost написал :) Я хочу разобраться, как правильно, учитывая все ньюансы сравнить текущее время - попадает оно в данный промежуток или нет? Как я написал примеры в первом посте - учитывать надо довольно много вариантов.
И еще: можно было бы конечно просто сравнивать время с заданным и потом, когда они станут равны включить второй таймер, но это не годится, т.к. если программа будет запущена, когда этот интервал уже идет, она соответственно не сработает. |
mrac
Цитата:
Код:
type |
Да, ночью что-то совсем тупил... утром сел, подумал и написал программку....правда еще только на листке бумаги, проверить не могу :)
|
Цитата:
DateTime : TDateTime; hour, min, sec, sec100 : Word; ... DecodeTime(Time,hour,min,sec,sec100); Ничего общего не замечаешь? |
| Часовой пояс GMT +4, время: 18:24. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.