Страницы

Поиск по вопросам

вторник, 16 октября 2018 г.

Общее количество недель в месяце

Как определить общее количество (неполные + полные) недель в произвольном месяце? Исходим из того что неделя начинается с понедельника и заканчивается воскресеньем. Другими словами, сколько строк календаря занимает тот или иной месяц.
Ноя.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; }

Комментариев нет:

Отправить комментарий