// 年,月,日,加减天数 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; }