Як порівняти дві дати
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