Вниз
Скачать: CL | DM;

Вычисление даты!   Найти похожие ветки 

 
h@1f-e1f ©   (2003-03-25 21:06) [0]

Извините за маленько ламерский вопрос, но как можно вычислить промежуток времени в месяцах и днях. Промежуток времени задан двумя датами: начало и конец промежутка...


 
Романов Р.В. ©   (2003-03-25 21:19) [1]

procedure CalcDateDelta(lDate, hDate: TDate; var dYear, dMonth, dDay: word);
var
yy1, yy2, mm1, mm2, dd1, dd2: word;
begin
if hDate > lDate then
begin
decodedate(lDate, yy1, mm1, dd1);
decodedate(hDate, yy2, mm2, dd2);
if (mm1>mm2) or ((mm1=mm2) and (dd1>dd2)) then
begin
dYear := yy2 - yy1 - 1;
dMonth := 12 - mm1 + mm2;
end
else
begin
dYear := yy2 - yy1;
dMonth := mm2 - mm1;
end;
if dd1>dd2 then
dec(dMonth);
dDay := trunc(hDate -
incmonth(lDate, dYear * 12 + dMonth));
end
else
begin
dYear := 0;
dMonth := 0;
dDay := 0;
end;
end;




 
h@1f-e1f ©   (2003-03-25 21:25) [2]

Спасибо! А проще никак? Причем тут тип данных word???


 
OxOTHuK   (2003-03-25 22:07) [3]

по-моему можно просто вычесть из одно даты другую, но постараться при этом не перепутать форматы даты исходной и выводимой...


 
Guerrillero ©   (2003-03-25 23:32) [4]

uses
DateUtils

DaysBetween
MonthsBetween

И еще смотри See also по справке



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.021 c
14-19756
dimich1978
2003-03-22 15:53
2003.04.07
Соединение двух зданий на скорости не более 10Мбит на HPNA.


14-19786
Кило
2003-03-19 12:36
2003.04.07
DsgnIntf.pas или DsgnIntf.dcu - где они?


14-19836
uw
2003-03-19 17:50
2003.04.07
OSR2


6-19717
Ozone
2003-02-13 07:46
2003.04.07
Проверка Email (есть/нет)


1-19626
Step[B.M.]
2003-03-23 03:26
2003.04.07
DLL. Проблемы с строковыми типами.




   Наверх