Topic: Как проверить поле DataTimePicker на превышение по времени

https://b.radikal.ru/b38/2007/88/87ec4882eb64.jpg

Рабочий день до 16:00

if talon2.DateTimePicker1.DateTime > EncodeTime(16, 0, 0, 0) Then
      begin
      MessageBox('Время талона превышает время окончания рабочего дня','Предупреждение',MB_ICONINFORMATION);
      Cancel:=True;
      end
      else begin
      MessageBox('Количество выданных талонов за этот день = '+IntToStr(countTal+1),'Информация', MB_OK+MB_ICONINFORMATION);
      end;

Ошибка в том, что при любом изменении поля времени на наименьшее всё равно появляется Предупреждение.  Подскажите советом пжлста.

Yana

2 (edited by Inkalika 2020-07-24 14:45:34)

Re: Как проверить поле DataTimePicker на превышение по времени

Может тогда воспользоваться  if ((SQLexecute('SELECT cast (julianday (date1, "+4 hours") as INT) FROM ... WHERE ...') - SQLexecute('SELECT cast (julianday (date2) as INT) FROM ...')) < '0') then... else...

Re: Как проверить поле DataTimePicker на превышение по времени

все потому, что в случае EncodeTime(16, 0, 0, 0)
Вы получаете такую дату
30.12.1899 16:00:00

Re: Как проверить поле DataTimePicker на превышение по времени

sibprogsistem wrote:

все потому, что в случае EncodeTime(16, 0, 0, 0)
Вы получаете такую дату
30.12.1899 16:00:00

Спасибо!

Вышла из положения так

timeEnd:=FormatDateTime('HH',talon2.DateTimePicker1.DateTime);  //время талона

условие

if timeEnd>='16' Then
      begin
      MessageBox('Время талона превышает время окончания рабочего дня','Предупреждение',MB_ICONINFORMATION);
      Cancel:=True;

Yana