//
年,月,日,加减天数
function DayAddDiff(year, month, day, diff) ... {
var numDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var isLeap = false;
var newyear = year;
var newmonth = month - 1;
var n = numDays[newmonth];
var newday = day;
var newdiff = diff;
var ln;
if (newmonth == 0)
ln = 31;
else if(newmonth == 11)
ln = 31;
else
ln = numDays[newmonth + 1];
if (diff != 0)...{
//判断是否润年
if (year % 4 == 0)...{
if (year % 100 != 0)
isLeap = true;
else...{
if (year % 400 == 0)
isLeap = true;
}
}
if (newmonth == 1 && isLeap)
++n;
if (newmonth == 0 && isLeap)
++ln;
//加值
var newday = day + newdiff;
if (newday > 0)...{
if (newday > n)...{
newday = newday - n;
if (newmonth == 11)
...{
newmonth = 0;
newyear += 1;
newdiff = newday - 1;
return DayAddDiff(newyear, newmonth + 1, 1, newdiff);
}
else...{
newmonth += 1
newdiff = newday - 1;
return DayAddDiff(newyear, newmonth + 1, 1, newdiff);
}
}
}
else if (newday == 0)...{
if (newmonth == 0)
...{
newmonth = 11
newyear += -1;
newday = 31;
}
else...{
newmonth += -1
newday = ln;
}
}
else...{
if (newmonth == 0)
...{
newmonth = 11
newyear += -1;
newdiff = newday;
newday = 31;
return DayAddDiff(newyear, newmonth + 1, newday, newdiff);
}
else...{
newmonth += -1;
newdiff = newday;
newday = ln;
return DayAddDiff(newyear, newmonth + 1, newday, newdiff);
}
}
}
//输出字符串
var daystring = "";
daystring += year;
newmonth += 1;
if (newmonth < 10)
daystring += "/0" + newmonth;
else
daystring += "/" + newmonth;
if (newday < 10)
daystring += "/0" + newday;
else
daystring += "/" + newday;
return daystring;
}
function DayAddDiff(year, month, day, diff) ... {
var numDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var isLeap = false;
var newyear = year;
var newmonth = month - 1;
var n = numDays[newmonth];
var newday = day;
var newdiff = diff;
var ln;
if (newmonth == 0)
ln = 31;
else if(newmonth == 11)
ln = 31;
else
ln = numDays[newmonth + 1];
if (diff != 0)...{
//判断是否润年
if (year % 4 == 0)...{
if (year % 100 != 0)
isLeap = true;
else...{
if (year % 400 == 0)
isLeap = true;
}
}
if (newmonth == 1 && isLeap)
++n;
if (newmonth == 0 && isLeap)
++ln;
//加值
var newday = day + newdiff;
if (newday > 0)...{
if (newday > n)...{
newday = newday - n;
if (newmonth == 11)
...{
newmonth = 0;
newyear += 1;
newdiff = newday - 1;
return DayAddDiff(newyear, newmonth + 1, 1, newdiff);
}
else...{
newmonth += 1
newdiff = newday - 1;
return DayAddDiff(newyear, newmonth + 1, 1, newdiff);
}
}
}
else if (newday == 0)...{
if (newmonth == 0)
...{
newmonth = 11
newyear += -1;
newday = 31;
}
else...{
newmonth += -1
newday = ln;
}
}
else...{
if (newmonth == 0)
...{
newmonth = 11
newyear += -1;
newdiff = newday;
newday = 31;
return DayAddDiff(newyear, newmonth + 1, newday, newdiff);
}
else...{
newmonth += -1;
newdiff = newday;
newday = ln;
return DayAddDiff(newyear, newmonth + 1, newday, newdiff);
}
}
}
//输出字符串
var daystring = "";
daystring += year;
newmonth += 1;
if (newmonth < 10)
daystring += "/0" + newmonth;
else
daystring += "/" + newmonth;
if (newday < 10)
daystring += "/0" + newday;
else
daystring += "/" + newday;
return daystring;
}