2016-05-23 114 views
1

我想計算一個月內在我的網站上顯示的工作時間數。我已經設法弄清楚如何讓日子顯示,但考慮到一些月份有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庫,看看這個問題已經解決了多少。 –

回答

0

由於你的功能已經給你的工作日計數,你只需要乘以工作小時數。

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

0

看看this鏈接。這使得每個月的每個星期只是計算每個國家不同的工作日,我認爲這一天不同。就像在澳大利亞一樣,我們在一週之內有五個工作日,從那裏你可以乘以工作時間。