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

Temporal.PlainDate.prototype.daysInWeek

Eigenschaft

Gibt als positive ganze Zahl zurück, wie viele Tage die Woche des Datums im jeweiligen Kalender hat. Im ISO-8601-Kalender ist das immer <code>7</code>.

seit JavaScript Temporal (ES-Proposal Stage 3); Firefox 139+, Chro Kategorie: method-property

Signatur

get Temporal.PlainDate.prototype.daysInWeek

Beschreibung

Die Zugriffseigenschaft daysInWeek einer Temporal.PlainDate-Instanz gibt an, wie viele Tage die Woche hat, in der das Datum liegt. Wie lang eine Woche ist, hängt vom Kalendersystem ab, das mit dem Datum verknüpft ist (calendarId).

In allen Kalendern, die heute in Intl eingebaut sind (iso8601, gregory, japanese, hebrew, islamic-*, chinese usw.), ist der Wert immer 7. Die Eigenschaft ist trotzdem sinnvoll: Wer kalenderunabhängigen Code schreibt, sollte nicht fest mit „7“ rechnen, sondern daysInWeek zusammen mit dayOfWeek abfragen, etwa um das Wochenende oder den letzten Tag der Woche zu bestimmen.

Die Eigenschaft ist schreibgeschützt und hat nur einen Getter. Temporal.PlainDate-Objekte sind unveränderlich. Wenn du ein Datum in einem anderen Kalender brauchst, erzeugst du mit withCalendar() eine neue Instanz.

Rückgabewert

Typ
number
Beschreibung
Positive ganze Zahl mit der Anzahl der Tage in der Woche des Datums. In allen eingebauten Kalendern ist das 7.

Beispiele

Wochenlänge im ISO-Kalender abfragen

const datum = Temporal.PlainDate.from('2024-03-15');
console.log(datum.daysInWeek);
console.log(datum.dayOfWeek); // 5 = Freitag
7 5

Verbleibende Tage bis Wochenende kalenderunabhängig berechnen

const restDerWoche = (datum) => datum.daysInWeek - datum.dayOfWeek;

const heute = Temporal.PlainDate.from('2024-03-13'); // Mittwoch
const wochenEnde = heute.add({ days: restDerWoche(heute) });

console.log(restDerWoche(heute));
console.log(wochenEnde.toString());
4 2024-03-17

Vergleich über verschiedene Kalender

const iso = Temporal.PlainDate.from('2024-09-01');
const kalender = ['gregory', 'hebrew', 'japanese', 'islamic-umalqura'];

for (const id of kalender) {
  const d = iso.withCalendar(id);
  console.log(`${id}: ${d.daysInWeek} Tage`);
}
gregory: 7 Tage hebrew: 7 Tage japanese: 7 Tage islamic-umalqura: 7 Tage

// Wichtig · Fallstricke

  • Kompatibilität: Temporal ist bisher nur in einigen neuen Browserversionen verfügbar (zum Beispiel Firefox 139+, Chrome 144+). Für ältere Umgebungen und Node.js ohne Flag brauchst du einen Polyfill wie @js-temporal/polyfill oder temporal-polyfill.
  • Rechne in kalenderunabhängigem Code nicht fest mit 7. Nutze daysInWeek, auch wenn der Wert in der Praxis heute immer 7 ist.
  • Nur Getter: Eine Zuweisung wie datum.daysInWeek = 5 wird im nicht-strikten Modus stillschweigend ignoriert und löst im Strict Mode einen TypeError aus.
  • dayOfWeek beginnt bei 1 (Montag im ISO-Kalender), nicht bei 0 wie Date.prototype.getDay() (Sonntag = 0).
  • Die Eigenschaft sagt nichts über den regionalen Wochenbeginn aus. Den liefert Intl.Locale.prototype.getWeekInfo().