Показать сообщение отдельно
  #6  
Старый 19.03.2008, 01:14
Аватар для Dux
Dux Dux вне форума
Активный
 
Регистрация: 18.03.2008
Сообщения: 206
Репутация: 16
По умолчанию

//Нужно подключить:
uses DateUtils;

//Чудо процедура:
procedure GetDayMonthYear(const dt1, dt2: TDateTime; var d,m,y: integer);
var ds: Double;
begin
ds:=DaySpan(dt1, dt2); //Количество дней прошедших между двумя датами
y:=Trunc(ds/ApproxDaysPerYear); //Количество полных лет
ds:=ds-y*ApproxDaysPerYear; //Количество дней, за вычетом y-лет
m:=Trunc(ds/ApproxDaysPerMonth); //Количество полных месяцев
d:=Trunc(ds-m*ApproxDaysPerMonth); //Количество дней
end;

//Использовать примерно так:
var dt1, dt2: TDateTime;
d,m, y: integer;
begin
dt1:=StrToDate('31.05.2006');
dt2:=StrToDate('01.02.2008');
GetDayMonthYear(dt1, dt2, d,m,y);
ShowMessage(inttostr(d)+', '+inttostr(m)+', '+inttostr(y));
end;
Ответить с цитированием