2016-06-25 2 views
1

Ich verwende einen Projektkalender bei der Arbeit, der 4-Wochen-Zyklen beginnend mit dem ersten Samstag des Jahres verwendet.Ermitteln Sie den "Zyklus" und die Woche mit JavaScript

Wie kann ich den Zyklus und die Woche des Zyklus für ein bestimmtes Datum mit JavaScript ohne zusätzliche Bibliotheken bestimmen?

+0

Ihre Frage hat also nichts mit "google-apps-script" zu tun? –

+0

Nicht "nichts", aber das ist, wo ich es verwenden werde und so nicht in der Lage sein wird, Bibliotheken als die leichtere Lösung zu verwenden. – ThatChrisGuy

Antwort

3

Dies ist nicht spezifisch für Apps Script, die Date object funktioniert in GAS die gleiche wie in den meisten Browsern (mit Ausnahme einiger Parsing-Details, die hier nicht relevant sind). Sie können den ersten Tag des Jahres, bestimmen, wie weit es vom ersten Samstag ist, den ersten Samstag finden und dann die Anzahl der Tage danach finden.

Danach teilen durch 28 und Bodenbelag die Anzahl der aktuellen Zyklus; Ich füge 1 hinzu, vorausgesetzt, es ist 1-basierte Nummerierung, aber das liegt an dir. Ähnlich wie bei der Wochennummer, außer dass auch% 4 verwendet wird, um den Zähler alle 4 Wochen zurückzusetzen.

Das aktuelle Datum, 2016-06-25, beginnt die zweite Woche des 7. Zyklus des Jahres.

Die Daten, die dem ersten Samstag des Jahres vorausgehen, werden als "0. Zyklus, 0. Woche" aufgezeichnet; eine Frage der Konvention.

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]; 
} 
Verwandte Themen