Как ПО_ЧЕЛОВЕЧЕСКИ сравнить время?

  • Автор темы Автор темы zaraza
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Z

zaraza

Хочу сравнить текущее время со временнем, введённым руками в DateTimePicker.
Конечно есть вариант преобразовать время в формат "час;минута;секунда;милисекунда" а потом по очереди сравнивать часы с часами... но может кто-то чем-то нормальным в Дельфях пользуется ????
подскажите плз
 
Я сейчас делаю прогу по работе с календарем. Я делал через EncodeDateTime. Т.е. Берешь например

Код:
DecodeDateTime(current, wYear, wMonth .... wMSecond);

и

DecodeDateTime(now, yYear...yMSecond);

и переменные сравнивал

Я пытался сравнить напрямую переменные TDateTime, но т.к. отсчет идет от 1899 года то если текущая дата старше чем искомая то не сравнивается нифига.
 
Время хранится в Double

The integral part of a TDateTime value is the number of days that have passed since 12/30/1899. The fractional part of a TDateTime value is fraction of a 24 hour day that has elapsed.

поэтому точность там по крайней мере миллисекунда. А в TDateTimePicker вводить время можно только до секунды.
Как ни старайся, сравнение с Now будет всегда не равным. Нужно приводить все к одному формату.
 
Сравнивать с now напрямую можно только на > или <. Но нужно еще учитывать, что если
TDateTimePicker.Kind=dtkTime, то пользователем меняется только составляющая времени в TDateTimePicker.Time,
хотя тип поля TDateTime; дата там подставляется из поля TDateTimePicker.Date - ее нужно отслеживать в коде.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!