Я пытаюсь вычислить количество рабочих часов в месяц для отображения на моем сайте. Мне удалось выяснить, как получить дни для показа, но просто получить часы для разных месяцев, учитывая, что некоторые месяцы имеют 31,30 и 28/29 дней.Как рассчитать количество рабочих часов в месяц?
function getBusinessDatesCount(startDate, endDate) {
var count = 0;
var curDate = startDate;
while (curDate <= endDate) {
var dayOfWeek = curDate.getDay();
if(!((dayOfWeek == 6) || (dayOfWeek == 0)))
count++;
curDate.setDate(curDate.getDate() + 1);
}
return count;
}
Использование:
var startDate = new Date('7/01/2015');
var endDate = new Date('7/31/2015');
var numOfDates = getBusinessDatesCount(startDate,endDate);
$('div#result').text(numOfDates);
Вам нужно учитывать праздничные дни, если вы хотите получить точное количество часов работы. И кроме того, все, что вам нужно в приведенном выше коде, состоит в том, чтобы умножить количество рабочих дней на часы, отработанные за день (если это тоже переменная, вам придется вычислять это для каждого дня) – dinotom
Это на самом деле не дает прямого ответа на ваш вопрос, но, вероятно, стоит взглянуть на библиотеку https://date-fns.org, чтобы узнать, какая часть этой проблемы уже решена для вас. –