JSFiddle - React, Tailwind, and code Playground
JavaScript
/**
* Returns count of weeks for year and month
*
* @param {Number} year - full year (2016)
* @param {Number} month_number - month_number is in the range 1..12
* @returns {number}
*/
var weeksCount = function(year, month_number) {
var firstOfMonth = new Date(year, month_number - 1, 1);
var day = firstOfMonth.getDay() || 6;
day = day === 1 ? 0 : day;
if (day) { day-- }
var diff = 7 - day;
var lastOfMonth = new Date(year, month_number, 0);
var lastDate = lastOfMonth.getDate();
if (lastOfMonth.getDay() === 1) {
diff--;
}
var result = Math.ceil((lastDate - diff) / 7);
return result + 1;
};
console.log(weeksCount(2016, 10));