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

古城微笑少年丶 2022-06-17 07:11 461阅读 0赞

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

  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  4. <title>增加月份</title>
  5. </head>
  6. <body>
  7. <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) + "<br/>");// 加一个月 document.write("2000-2-29 增加12个月后的日期为:" + addmulMonth("2000-2-29", 12) + "<br/>");// 加一年 document.write("2000-1-31 增加3个月后的日期为:" + addmulMonth("2000-1-31", 3) + "<br/>");// 加一季度 document.write("2000-2-29 增加6个月后的日期为:" + addmulMonth("2000-2-29", 6) + "<br/>");// 加半年 document.write("2000-2-29 增加9个月后的日期为:" + addmulMonth("2000-2-29", 9) + "<br/>");// 加三个季度 /** * 基于今天为基准,计算增加或减少指定天数后的日期 * * @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("<br />昨天:" + getDateStr(-1)); document.write("<br />今天:" + getDateStr(0)); document.write("<br />明天:" + getDateStr(1)); document.write("<br />后天:" + getDateStr(2)); document.write("<br />大后天:" + getDateStr(3)); </script>
  8. </body>
  9. </html>

发表评论

表情:
评论列表 (有 0 条评论,461人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java日期增加一个

    公司有个业务需求,新增功能不才看此类信息。需求是要求屏蔽一个月,一个月后在自动展示出来。所以这边需要根据日期来判断。在日期上加一个月。 代码截图: 控制台打印结果: ...