Як порівняти дві дати

Як порівняти дві дати

StrToDateTime () - поверне дату в матеріальному форматі.

Шляхом віднімання це дати з поточною (Now) отримаєш різницю - то що і потрібно, причому в частках доби.
Можеш округлити (Trunc, Round)

Привести рядок до TDateTime і знайти різницю з Now () або Date (). Ціла частина і буде різницею в цілих добі. Дробная - частина доби (0.5 = 12 годин)

# XA0; # XA0; # XA0; str: = datetostr (date) + "" + timetostr (time);
# XA0; # XA0; # XA0; jok: = strtodatetime (str) -strtodatetime (dbedit21.Text);

> Діб пройшло з першої дати до поточної # 133

DaysBetween

а str точно має в твоєму випадку вид "17.05.07 10:46:15". Якщо інший, то strtodatetime застосовувати не зовсім коректно.

точно такий - в неї заганяли за принципом datetostr (date) + "" + timetostr (time);
але кілька днів тому

і як працювати з DaysBetween

результат чомусь 0

Не вірю. В результаті - ощідаемие 19.5:

procedure TForm1.Button1Click (Sender: TObject);
begin
# XA0; Application.MessageBox (
# XA0; # XA0; PChar (
# XA0; # XA0; # XA0; DateTimeToStr (Now () - 19.5) + # 13 +
# XA0; # XA0; # XA0; FloatToStr (
# XA0; # XA0; # XA0; # XA0; StrToDateTime (DateTimeToStr (Now ())) -
# XA0; # XA0; # XA0; # XA0; StrToDateTime (DateTimeToStr (Now () - 19.5))
# XA0; # XA0; # XA0;)
# XA0; # XA0;),
# XA0; # XA0; PChar (DateTimeToStr (Now ())),
# XA0; # XA0; 0
# XA0;)
end;

Пам'ять: 0.73 MB
Час: 0.088 c

Схожі статті