zoukankan      html  css  js  c++  java
  • JS获取指定月份的天数几种方法

    最近看到一个有意思的试题,正好在需求中也碰到类似的问题,即计算某个月的天数问题。碰到类似问题也许大部分会想是不是还要判断闰年、平年,如果这样想的话就复杂了,下面给出具体的计算方法。

    获取月份天数方法一:

    //传入年份和月份 获取该年对应月份的天数
    function getMonthDays(year,month){
        var thisDate = new Date(year,month,0);  //当天数为0 js自动处理为上一月的最后一天
        return thisDate.getDate();
    }

    上面应该时获取月份天数最简单的方法之一了,当Date中参数超出范围时js会自动处理,如果传值小于等于0,则日期将会向前推,否则日期将会向后推。下面时MDN原文,也提到了此现象:

    Note: 当Date作为构造函数调用并传入多个参数时,如果数值大于合理范围时(如月份为13或者分钟数为70),相邻的数值会被调整。比如 new Date(2013, 13, 1)等于new Date(2014, 1, 1),它们都表示日期2014-02-01(注意月份是从0开始的)。其他数值也是类似,new Date(2013, 2, 1, 0, 70)等于new Date(2013, 2, 1, 1, 10),都表示时间2013-03-01T01:10:00。

    下面给出几个例子供参考:

    1.参数传入负数

    2.传入大于规定范围的值

    以上可看出,js本身对日期处理还是比较好的,同时开发人员也可以利用这一点获取想要的结果。

    获取月份天数方法一:

    下面就是比较正常的获取方式了,代码:

    //根据两个月份同一天的差值获取,同样是传入需要获取的对应年份和月份
    function getMonthDays(year,month){
        var stratDate = new Date(year,month-1,1),
             endData = new Date(year,month,1);
        var days = (endData -stratDate)/(1000*60*60*24);
        return days;
    }

    第二种方式则是根据所求月份和下一个月份某一天的差值获取对应月份的天数。

    ----------------------分割线--------------------

    发现其他方法再更新!

    海纳百川,有容乃大;壁立千仞,无欲则刚。人要有胸怀方能成大事,不要被欲望所驱使,方能风吹不动浪打不摇。 不积跬步无以至千里,不积小流无以成江海。从事技术工作,要时刻学习积累,即使不能一专多能也应术业有专攻,方能以不变应万变。
  • 相关阅读:
    linux System V IPC Mechanisms
    linux pipes
    linux create a process
    linux processes identifiers
    linux processes
    beaglebone-black reference url
    git commit steps(1)
    hadoop hadoop install (1)
    OpenWrite方法打开现有文件并进行写入
    OpenRead方法打开文件并读取
  • 原文地址:https://www.cnblogs.com/websharehome/p/9211062.html
Copyright © 2011-2022 走看看