Signatur
Beschreibung
Die Zugriffseigenschaft daysInWeek von Temporal.PlainDateTime-Instanzen liefert eine positive ganze Zahl: die Anzahl der Tage in der Woche, zu der das Datum gehört. Der Wert hängt vom Kalender der Instanz ab (calendarId), nicht von der Uhrzeit.
In allen Kalendern, die JavaScript derzeit eingebaut unterstützt (iso8601, gregory, japanese, hebrew, islamic-*, chinese usw.), hat eine Woche immer 7 Tage. Die Eigenschaft gibt es trotzdem, damit Code nicht auf eine feste 7 angewiesen ist und auch mit Kalendern mit anderer Wochenlänge funktioniert.
Sinnvoll ist sie überall dort, wo man mit Wochen rechnet, etwa bei Kalenderrastern, beim Zählen der restlichen Tage einer Woche zusammen mit dayOfWeek oder beim Prüfen, ob ein Tag der letzte der Woche ist. Die Eigenschaft ist schreibgeschützt. Ein anderes Datum bekommt man über with(), add() oder withCalendar().
Rückgabewert
7.Beispiele
Grundlegender Zugriff
const termin = Temporal.PlainDateTime.from('2024-05-15T14:30');
console.log(termin.daysInWeek);
console.log(termin.dayOfWeek); // 1 = Montag … 7 = Sonntag
Resttage bis zum Wochenende berechnen
const jetzt = Temporal.PlainDateTime.from('2024-05-15T09:00');
// Tage bis zum letzten Tag der Woche (ohne feste 7)
const resttage = jetzt.daysInWeek - jetzt.dayOfWeek;
const wochenende = jetzt.add({ days: resttage }).with({ hour: 23, minute: 59 });
console.log(`Noch ${resttage} Tage`);
console.log(wochenende.toString());
Wochenlänge in anderen Kalendern
const dt = Temporal.PlainDateTime.from('2024-05-15T12:00');
for (const cal of ['iso8601', 'hebrew', 'islamic-umalqura', 'japanese']) {
const d = dt.withCalendar(cal);
console.log(cal, d.daysInWeek);
}
Letzten Tag der Woche erkennen
const istWochenende = (dt) => dt.dayOfWeek === dt.daysInWeek;
console.log(istWochenende(Temporal.PlainDateTime.from('2024-05-19T10:00'))); // Sonntag
console.log(istWochenende(Temporal.PlainDateTime.from('2024-05-17T10:00'))); // Freitag
// Wichtig · Fallstricke
- Browser-Unterstützung: Temporal ist neu (Stage 4, ES2026). Firefox unterstützt es ab Version 139, Chrome ab Version 144. Safari und ältere Umgebungen brauchen einen Polyfill wie
@js-temporal/polyfillodertemporal-polyfill. - Die Eigenschaft ist schreibgeschützt.
dt.daysInWeek = 5ändert nichts und wirft im Strict Mode einenTypeError, weil es keinen Setter gibt. - In der Praxis ist der Wert immer
7. Er hat nichts mit regionalen Arbeitswochen (z. B. 5 Werktage) oder dem ersten Wochentag (Sonntag oder Montag) zu tun. Dafür gibt esIntl.Locale.prototype.getWeekInfo(). dayOfWeekzählt nach ISO immer ab Montag (1) bis Sonntag (7), auch wenn in der jeweiligen Region die Woche am Sonntag beginnt.- Wenn du die Eigenschaft über
Object.getOwnPropertyDescriptorauf einem Objekt aufrufst, das keinTemporal.PlainDateTimeist, wird einTypeErrorgeworfen.