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

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/catoop/article/details/70247257 该代码函数实现的功能是,在给定日期的基础上增加固定月份后的日期,注意增加的是自然月。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/catoop/article/details/70247257

该代码函数实现的功能是,在给定日期的基础上增加固定月份后的日期,注意增加的是自然月。
例如:
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)
                + "<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>
</body>
</html>
目录
相关文章
|
3月前
|
运维 Serverless 网络安全
函数计算产品使用问题之函数运行时间大于24小时该如何解决
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
文本,好看的设计------我独自升级,六芒星技能表,可以用来判断是否在能力值之内的事情,使用六芒星可以显示能力之内,能力之外的事情,用以判断
文本,好看的设计------我独自升级,六芒星技能表,可以用来判断是否在能力值之内的事情,使用六芒星可以显示能力之内,能力之外的事情,用以判断
文本,好看的设计------我独自升级,六芒星技能表,可以用来判断是否在能力值之内的事情,使用六芒星可以显示能力之内,能力之外的事情,用以判断
|
6月前
|
C语言
编写一个程序, 给出两个时间,计算出两个时间之差,如给出1120表示11:20,1330表示13:30, 将时间间隔以分钟为单位输出。
这是一个C语言程序,它接收两个时间(小时:分钟格式)作为输入,然后计算并输出两个时间之间的差值。代码包括输入处理、时间转换为分钟以及计算时间差。程序运行结果展示了一个具体的示例时间差。
53 0
计算LocalDate之间的天数差,方便快捷
计算LocalDate之间的天数差,方便快捷
375 0
【SQL开发实战技巧】系列(十七):数据仓库中时间类型操作(初级)确定两个日期之间的工作天数、计算—年中周内各日期出现次数、确定当前记录和下一条记录之间相差的天数
如何确定两个日期之间的工作日有多少天、计算—年中每周内各日期出现次数、确定当前记录和下一条记录之间相差的天数【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。本章节的三个需求:确定两个日期之间的工作天数、计算—年中周内各日期出现次数、确定当前记录和下一条记录之间相差的天数有些许难度,不过建议还是学会比较好。
【SQL开发实战技巧】系列(十七):数据仓库中时间类型操作(初级)确定两个日期之间的工作天数、计算—年中周内各日期出现次数、确定当前记录和下一条记录之间相差的天数
|
人工智能 算法
靠这个信息差,我省了至少上千块!
靠这个信息差,我省了至少上千块!
189 0
靠这个信息差,我省了至少上千块!
|
存储 机器学习/深度学习 自然语言处理
【算法的特性,标准,时间维度空间维度计算方式】
【算法的特性,标准,时间维度空间维度计算方式】
281 0
【算法的特性,标准,时间维度空间维度计算方式】
给定一个数值,计算最合适的行列数量的代码
给定一个数值,计算最合适的行列数量的代码
97 0
Java 输入一个字符串格式日期,获取对应的自然月开始结束时间,对应的自然年开始结束时间
Java 输入一个字符串格式日期,获取对应的自然月开始结束时间,对应的自然年开始结束时间
274 0
Java 输入一个字符串格式日期,获取对应的自然月开始结束时间,对应的自然年开始结束时间