Данная функция полезна как для вычисления возраста на заданную дату 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
Тэги: функции