Проблеммы со сравнением типа Ttime
У меня возникла проблема.
Мне необходимо узнать пересекаются ли временные отрезки в одном дне или нет.
Т.е. у меня нет даты, есть только два отрезка времени
Для примера
С 11 - 14
И
С 10 – 15.
Ну вот, пытаюсь в делфе банально проверить абсурдное (по моему мнению) условие, что 10 часов > 11 часов, и это условие срабатывает! Как такое могло получится не пойму.
Есть скромное предположение, что это из-за разношерстности сравниваемых типов, т.к. я первый временной промежуток беру с аксеса а второй с дататаймпикеров с кайндом Time,
но я, как бы, постарался привести их к единому TTime, и вот, ничего у меня не получилось, какой-то бред(
А в аксесе поле типа ДатаВремя и формат поля Длинный формат времени.
Вот отрывки написанного:
var
a1,b1,c1,d1:TTime;
a1:=ard.Q_F_D_A.FieldByName('Время_занятий_н').AsDateTime; //в примере 11 часов
b1:=ard.Q_F_D_A.FieldByName('Время_занятий_к').AsDateTime;
c1:=ard.DateTimePicker3.Time; // примере 10 часов
d1:=ard.DateTimePicker4.Time;
if c1>a1 then
ard.Label5.Caption:=TimeToStr(c1)+'>'+TimeToStr(a1);
Кто с этим сталкивался - помогите плиз, голова уже кругом идёт(
В лоб сравнивать два значения времени не совсем корректно. В модуле DateUtils для этого есть специальные функции: CompareDate, CompareTime, CompareDateTime. Как раз их и нужно использовать в подобных случаях.
Спасибо огромное, пашет как часы)