如何计算一个月的工作时间?

问题描述:

我想计算一个月内在我的网站上显示的工作时间数。我已经设法弄清楚如何让日子显示,但考虑到一些月份有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); 
+0

如果您想要精确计算工作时间,则需要考虑假期。除此之外,上述代码中所需的全部内容是将工作日数乘以一天中工作的小时数(如果这也是可变的,那么您也必须计算每天的工作日数) – dinotom

+0

这并不直接回答您的问题的问题,但可能还是值得看一下https://date-fns.org库,看看这个问题已经解决了多少。 –

由于你的功能已经给你的工作日计数,你只需要乘以工作小时数。

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; 
} 

考虑到这个函数返回正确的天数。你可以做的只是乘以你的国家的小时数。

如果还有其他东西需要。请评论我会尽力帮助你。

+0

我必须显示每个月的总可能工作时间。所以在每个月的第一天,它需要改变为整个月。 – Steven

+0

实际上,如果我可以在本月显示它,它将是完美的 – Steven

看看this链接。这使得每个月的每个星期只是计算每个国家不同的工作日,我认为这一天不同。就像在澳大利亚一样,我们在一周之内有五个工作日,从那里你可以乘以工作时间。