Я использую следующий код, чтобы определить общее количество воскресений в месяц, однако это дает неправильный результатобщее количество восресеньям в месяц
function sundaysInMonth(start) {
var dat = new Date('1 ' + start);
var y = dat.getFullYear();
var m = dat.getMonth() + 1;
var days = new Date(y,m,0).getDate();
var sundays = [ 8 - (new Date(m + '/01/' + y).getDay()) ];
for (var i = sundays[0] + 7; i < days; i += 7) {
sundays.push(i);
}
return sundays.length;
}
Когда я звоню выше функции, такие как console.log(sundaysInMonth('September 2013'));
то он возвращает 4
тогда September 2013
имеет 5 воскресений.
Я получаю выше кода из этого post
, когда вы просматриваете свой код в отладчике инструментов разработчика, какая строка имеет первую ошибку? –
Ошибка отсутствует. Он просто возвращает неверный результат. – 2619
Начните с некоторой очевидной отладки. Например, переменная 'days' инициализирована с правильным номером? И почему вы начинаете восьмой месяц? Дни считаются 0..6. – usr2564301