Between_DateTime. Расчет промежутка между двумя датами прописью

Функция определения промежутка между датами имеет общий вид.

Between_DateTime(datetime1; datetime2)

Текст  функции:

Let ( 
[ 
$year_ =Year ( datetime2 ) - Year ( datetime1 ); $month_ = Month ( datetime2 ) - Month ( datetime1 ); $day_ = Day ( datetime2 ) - Day ( datetime1 );
$hh_ = Hour ( datetime2 ) - Hour ( datetime1 ); $mm_ = Minute ( datetime2 ) - Minute ( datetime1 );
$hh_1 = If($mm_ < 0; $hh_ - 1; $hh_); $mm_2 = If($mm_ < 0; $mm_ + 60; $mm_);
$day_1 = If($hh_1 < 0; $day_ - 1; $day_); $hh_2 = If($hh_1 < 0; $hh_1 + 24; $hh_1);
$month_1 = If($day_1 < 0; $month_ - 1; $month_); $day_2 = If($day_1 < 0; $day_1 + 30; $day_1);
$year_2 = If($month_1 < 0; $year_ - 1; $year_); $month_2 = If($month_1 < 0; $month_1 + 12; $month_1)
] ; 
If($year_2 > 0; $year_2 & " " & RightWords ( Num2Words_year ( $year_2 ); 1 ) & " "; "") &
If($year_2 > 0 or $month_2 > 0; $month_2 & " мес. "; "") &
If($year_2 > 0 or $month_2 > 0 or $day_2 > 0; $day_2 & " дн. " ; "") &
If($year_2 > 0 or $month_2 > 0 or $day_2 > 0 or $hh_2 > 0; $hh_2 & " час. "; "") & 
$mm_2 & " мин." 
 )

Пример использования данной функции и результат выполнения:

Between_DateTime(date_created; date_modified) = «1 мес. 15 дн. 12 час. 13 мин.» , 

если date_created = «28.07.2015 11:17:20», a date_modified = «13.09.2015 23:30:37»

 

Прислал Игорь Шичко

One comment

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

18 − 17 =