<html>
<head>
<title>
</title>
<script type="text/javascript">
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;
}
var da = DayAddDiff(2008,01,01,30);
alert(da);
</script>
</head>
<body>
</body>
</html>
<head>
<title>
</title>
<script type="text/javascript">
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;
}
var da = DayAddDiff(2008,01,01,30);
alert(da);
</script>
</head>
<body>
</body>
</html>