Вопрос № 24549: Delphi
Здравствуйте, уважаемые эксперты.
Подскажите, пожалуйста как узнать разницу между
двумя датами. Вот так получается очень
странная дата --> 02.01.1904 <-- ???
procedure TForm1.Button1Click(Sender: TObject);<...
Вопрос № 24.549
Delphi
Здравствуйте, уважаемые эксперты.
Подскажите, пожалуйста как узнать разницу между
двумя датами. Вот так получается очень
странная дата --> 02.01.1904 <-- ???
procedure TForm1.Button1Click(Sender: TObject);
Var D1, D2: String;
begin
D1:='06.06.2001';
D2:='08.06.2005';
Caption:=DateToStr(StrToDate(D2) - StrToDate(D1));
end;
Отправлен: 05.08.2005, 11:58
Вопрос задал: Гусев Сергей (статус: Посетитель)
Всего ответов отправлено: 2
Отвечает: Denisss
Здравствуйте, Гусев Сергей!
Даже не странно, что оно Вам такое выдало :)
Дело в том, что TDateTime имеет диапазон дат от 01,01,1900 до 31,12,2099, т.е. как ни считай,а 0 дней, 0 месяцев, 0 лет не получишь никогда. Минимум, 01,01,1900.
Я по быстренькому написал для Вас примерчик (он в приложении). По хорошему, его бы еще потестить, да отладить, но это, надеюсь, в Ваших силах. (Хотя его, может, и не надо отлаживать).
Из минусов могу сказать Вам только то, что в примере недочет один: если второй год окажется меньше первого, то получится отрицательное число :)
Приложение:
Ответ отправил: Denisss (статус: Студент)
Отправлен: 05.08.2005, 23:15
Отвечает: Ерёмин Андрей
Здравствуйте, Гусев Сергей!
Нет, так не выйдет. Подключите модуль DateUtils (Добавтье в uses), после этого вам доступны следующие функции, которые позволяют узнать разницу между двумя датами: YearsBetween, MonthsBetween, WeeksBetween, DaysBetween, HoursBetween, MinutesBetween, SecondsBetween, MilliSecondsBetween. Каждой функции нужного передать две даты, между которыми нужно найти разность.
--------- Если б не было бы глюка, жизнь была б такая скyка...
Ответ отправил: Ерёмин Андрей (статус: Студент)
Отправлен: 09.08.2005, 06:59