2016-06-25 80 views
1

我在工作中使用項目日曆,該日曆使用從一年的第一個週六開始的4週週期。使用JavaScript確定「週期」和星期

如何在沒有任何額外庫的情況下使用JavaScript來確定給定日期的週期和週期?

+0

因此,您的問題與「google-apps-script」無關? –

+0

不是「沒有」,但這是我將使用它的地方,因此無法使用庫作爲更簡單的解決方案。 – ThatChrisGuy

回答

3

這不是特定於Apps腳本的,Date object在GAS中的工作方式與大多數瀏覽器中的相同(除了某些解析細節在此不相關)。你可以得到一年的第一天,確定從第一個星期六到第一個星期六的距離,然後找到它之後的天數。

之後,除以28和地板給出當前週期的數量;假設它是基於1的編號,我加1,但這取決於你。與週數一樣,除了%4用於每4周重置一次計數器。

當前日期2016-06-25開始第7個週期的第2周。

將年度第一個星期六之前的日期記錄爲「第0個週期,第0周」;這是一個慣例。

function weeks() { 
    var now = new Date(); 
    var year = now.getFullYear(); 
    var offsetSat = 6 - new Date(year, 0, 1).getDay(); 
    var firstSat = new Date(year, 0, 1 + offsetSat); 
    var daysSince = Math.round((now - firstSat)/(24*3600*1000)); 
    var cycleNum = daysSince < 0 ? 0 : 1 + Math.floor(daysSince/28); 
    var weekNum = daysSince < 0 ? 0 : 1 + Math.floor(daysSince/7) % 4; 
    return [cycleNum, weekNum]; 
}