Get Weeks In Month Through Javascript

后端 未结 17 1365
盖世英雄少女心
盖世英雄少女心 2020-11-30 09:03

In Javascript, how do I get the number of weeks in a month? I can\'t seem to find code for this anywhere.

I need this to be able to know how many rows I need for a g

17条回答
  •  夕颜
    夕颜 (楼主)
    2020-11-30 09:36

    You'll have to calculate it.

    You can do something like

    var firstDay = new Date(2010, 0, 1).getDay(); // get the weekday january starts on
    var numWeeks = 5 + (firstDay >= 5 ? 1 : 0); // if the months starts on friday, then it will end on sunday
    

    Now we just need to genericize it.

    var dayThreshold = [ 5, 1, 5, 6, 5, 6, 5, 5, 6, 5, 6, 5 ];
    function GetNumWeeks(month, year)
    {
        var firstDay = new Date(year, month, 1).getDay();
        var baseWeeks = (month == 1 ? 4 : 5); // only February can fit in 4 weeks
        // TODO: account for leap years
        return baseWeeks + (firstDay >= dayThreshold[month] ? 1 : 0); // add an extra week if the month starts beyond the threshold day.
    }
    

    Note: When calling, remember that months are zero indexed in javascript (i.e. January == 0).

提交回复
热议问题