Как определить общее количество (неполные + полные) недель в произвольном месяце? Исходим из того что неделя начинается с понедельника и заканчивается воскресеньем. Другими словами, сколько строк календаря занимает тот или иной месяц.
Ноя.2015 - 6 недель (01.11 - Вс, 30.11 - Пн)
Дек.2015 - 5 недель (01.12 - Вт, 31.12 - Чт)
Ответ
На основании дня недели последнего числа месяца находим число дней прошедших до последнего понедельника. Делим это число на 7 и округляем вверх, получаем кол-во недель прошедших до последней недели, прибавляем 1.
function getWeeks(year, month) // Внимание: Месяцы нумеруются с 0, как принято в JS
{
var l=new Date(year, month+1, 0);
return Math.ceil( (l.getDate()- (l.getDay()?l.getDay():7))/7 )+1;
}
Комментариев нет:
Отправить комментарий