Ниже приведен скрипт, вычисляющий разность дат.
Входные параметры: год, месяц и день начала интервала дат, год, месяц и день конца интервала дат.
var MD = [ 31 , 28 , 31 ,
30 , 31 , 30 ,
31 , 31 , 30 ,
31 , 30 , 31 ] ;
var MV = [ 31 , 29 , 31 ,
30 , 31 , 30 ,
31 , 31 , 30 ,
31 , 30 , 31 ] ;
var WS = WScript.CreateObject( "WScript.Shell" ) ;
function gage ( yb , mb , db , yi , mi , di )
{
var y , m , d , s , mm , bd , bm , by ;
y = m = d = bd = bm = by = 0 ;
s = "" ;
y = yi - yb ;
if ( di < db ) {
mm = mi ;
if ( mm == 1 ) mm = 12 ;
else mm-- ;
if (( yi % 4 == 0 ) && ( ( yi % 100 != 0 ) || ( yi % 400 == 0 ) ))
d = MV [ mm - 1 ] - db + di ;
else d = MD [ mm - 1 ] - db + di ;
bd = 1 ;
} else d = di - db ;
if ( mi < mb ) {
m = 12 - mb + mi - bd ;
bm = 1 ;
} else {
if (( mi == mb ) && bd ) m = 11 ;
else m = mi - mb - bd ;
}
if ( bd == 1 && bm == 1 ) by = 1 ;
else if ( bd == 0 && bm == 1 ) by = 1 ;
else if ( bd == 1 && ( mi == mb ) ) by = 1 ;
y = yi - yb - by ;
if ( y < 0 ) y = 0 ;
if ( m < 0 ) m = 0 ;
if ( d < 0 ) d = 0 ;
s = "лет: " + y + " месяцев: " + m + " дней: " + d ;
return s ;
}
WS.Popup ( gage ( 2010 , 09 , 28 , 2011 , 01 , 12 ) ) ;
P.S. Создание объекта типа WScript.Shell возможно только для ОС Windows.
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий