2016-06-25 4 views
1

年の最初の土曜日から4週間のサイクルを使用するプロジェクトカレンダーを使用します。"Cycle"とJavaScriptを使用した週を確認する

余分なライブラリを使用せずにJavaScriptを使用して、指定した日付の周期と週を特定するにはどうすればよいですか?

+0

質問は「google-apps-script」とは関係ありません。 –

+0

"何もない"しかし、それは私がそれを使用しているので、より簡単な解決策としてライブラリを使用することができません。 – ThatChrisGuy

答えて

3

これはApps Scriptに固有のものではありません。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]; 
} 
関連する問題