• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

zaraza

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

admin

Я сейчас делаю прогу по работе с календарем. Я делал через EncodeDateTime. Т.е. Берешь например

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

и

DecodeDateTime(now, yYear...yMSecond);

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

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

ironwit

сравни datetimepacker.time с функцией now
 
S

shm

Время хранится в 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 будет всегда не равным. Нужно приводить все к одному формату.
 
S

shm

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

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