计算给定日期增加自然月后的日期

该代码函数实现的功能是,在给定日期的基础上增加固定月份后的日期,注意增加的是自然月。
例如:
2001-01-28、2001-01-29、2001-01-30、2001-01-31 增加一个月后,得到的结果都应该是 2001-02-28

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>增加月份title>
head>
<body><script language='javascript' charset='gb2312'>/*** 计算给定日期增加N个自然月后的日期** @param dtstr    给定日期,格式 2016-01-30* @param n    需要增加的月数* @returns*/function addmulMonth(dtstr, n) { // n个月后var s = dtstr.split("-");var yy = parseInt(s[0]);var mm = parseInt(s[1] - 1);var dd = parseInt(s[2]);var dt = new Date(yy, mm, dd);dt.setMonth(dt.getMonth() + n);if ((dt.getFullYear() * 12 + dt.getMonth()) > (yy * 12 + mm + n)) {dt = new Date(dt.getFullYear(), dt.getMonth(), 0);}var year = dt.getFullYear();var month = dt.getMonth() + 1;var days = dt.getDate();var dd = year + "-" + month + "-" + days;return dd;}// 下面是测试代码document.write("2000-1-31 增加1个月后的日期为:" + addmulMonth("2000-1-31", 1)+ "
"
);// 加一个月document.write("2000-2-29 增加12个月后的日期为:" + addmulMonth("2000-2-29", 12)+ "
"
);// 加一年document.write("2000-1-31 增加3个月后的日期为:" + addmulMonth("2000-1-31", 3)+ "
"
);// 加一季度document.write("2000-2-29 增加6个月后的日期为:" + addmulMonth("2000-2-29", 6)+ "
"
);// 加半年document.write("2000-2-29 增加9个月后的日期为:" + addmulMonth("2000-2-29", 9)+ "
"
);// 加三个季度/*** 基于今天为基准,计算增加或减少指定天数后的日期** @param addDayCount 增加或减少的天数(正数或负数)* @returns 计算后的日期*/function getDateStr(addDayCount) {var dd = new Date();dd.setDate(dd.getDate() + addDayCount);// 获取addDayCount天后的日期var y = dd.getFullYear();var m = dd.getMonth() + 1;// 获取当前月份的日期var d = dd.getDate();return y + "-" + m + "-" + d;}document.write("前天:" + getDateStr(-2));document.write("
昨天:"
+ getDateStr(-1));document.write("
今天:"
+ getDateStr(0));document.write("
明天:"
+ getDateStr(1));document.write("
后天:"
+ getDateStr(2));document.write("
大后天:"
+ getDateStr(3));
script> body> html>


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部