Age ( date1 ; date2 )

Данная функция полезна как для вычисления возраста на заданную дату Date2 (при дате рождения Date1), так и для определения точного интервала в годах/месяцах/днях между двумя произвольными датами.

Код:

// © 2006 Winfried Huslik, www.fmdiff.com

Let ( [
neg = Case ( date1 > date2 ; -1 ; 1 ) ;
d1 = Case ( neg < 0 ; date2 ; date1 ) ;
d2 = Case ( neg < 0 ; date1 ; date2 ) ;

d = Mod ( Day ( d2 ) - Day ( d1 ) ; Day ( Date ( Month ( d1 ) + 1 ; 0; Year ( d1 ) ) ) ) ;

m = Mod ( Month ( d2 ) - Month ( d1 ) - ( Day ( d2 ) < Day ( d1 ) ) ; 12 ) ;

y = Year ( d2 ) - Year ( d1 ) - ( ( Month ( d2 ) - ( Day ( d2 ) < Day ( d1 ) ) ) < Month ( d1 ) )
];
y & " лет " & m & " мес. " & d & " дн."
)

Пример:

Date1 = 09.05.1945

Date2 = 01.05.2015

Результат:       69 лет 11 мес. 23 дн.





Автор: Winfried Huslik

Источник: http://www.fmdiff.com/fm/agecalc.html?session=b8f85b86132db2b3689f4a57e1db0ab3

Тэги: функции

← Вернуться к списку статей