2011-10-14 28 views
0

我試圖想出一個辦法找到本季度周,2周抵消。我們在本季度的第三個星期六(10.15.11,01.21.12等)發佈季度軟件版本。有沒有辦法獲得這些信息?周的財季,使用JavaScript

例如,本週將是本季度的第13周。

+0

第三季度週六 - 漂亮的發佈時間表:) – deviousdodo

+0

這裏是計算週數http://www.codeproject.com/KB/cs/gregorianwknum.aspx 你的邏輯添加到它的JavaScript並且如果您願意的話上傳解決方案。 – RHT

+0

到目前爲止您嘗試過什麼?如果你想用JavaScript來做,你需要從[Date](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date)對象開始...... – nnnnnn

回答

3
function getQuarterWeek(d) { 
    // Convert to UTC to avoid DST changes. 
    d = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDay())); 
    // For previous Saturday you would normally add one here. 
    // But we want to go back two weeks, so subtract 14. 
    d.setUTCDate(d.getUTCDate() - 13); 
    d.setUTCDate(d.getUTCDate() - d.getUTCDay() - 1); 
    // Save the timestamp of this Saturday. 
    var s = d.getTime(); 
    // Now get the first day of the quarter. 
    d.setUTCDate(1); 
    d.setUTCMonth(d.getUTCMonth() - d.getUTCMonth() % 3); 
    // And find the following Saturday. 
    d.setUTCDate(7 - d.getUTCDay()); 
    // Convert the time difference to weeks. 
    return (d.getTime() - s)/604800000 + 1; 
}