Start · Sprachen · JavaScript · Referenz · Temporal.PlainDateTime.prototype.daysInWeek

Temporal.PlainDateTime.prototype.daysInWeek

Eigenschaft

Gibt die Anzahl der Tage in der Woche des Datums als positive ganze Zahl zurück. Im ISO-8601-Kalender ist das immer <code>7</code>.

seit JavaScript ES2026 (Temporal); Firefox 139+, Chrome 144+; Safa Kategorie: method-property

Signatur

get Temporal.PlainDateTime.prototype.daysInWeek

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

Typ
number
Beschreibung
Positive ganze Zahl mit der Anzahl der Tage in der Woche. In allen eingebauten Kalendern ist das 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
7 3

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());
Noch 4 Tage 2024-05-19T23:59:00

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);
}
iso8601 7 hebrew 7 islamic-umalqura 7 japanese 7

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
true false

// 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/polyfill oder temporal-polyfill.
  • Die Eigenschaft ist schreibgeschützt. dt.daysInWeek = 5 ändert nichts und wirft im Strict Mode einen TypeError, 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 es Intl.Locale.prototype.getWeekInfo().
  • dayOfWeek zä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.getOwnPropertyDescriptor auf einem Objekt aufrufst, das kein Temporal.PlainDateTime ist, wird ein TypeError geworfen.