Wochentage im Kopf berechnen

Wenn du diesen Artikel liest, fragst du dich sicherlich, wie man den Wochentag eines beliebigen Datums schnell im Kopf berechnen kann. In diesem Artikel erfährst du, wie es geht.

Was muss ich dafür können?

Nicht wirklich viel…

  • Kopfrechnen
  • Addieren (Zahlen im Bereich zwischen 0 und 99 zusammenrechnen)
  • Zahlen durch 4 teilen
  • Modulo-Berechung (was ist der Rest einer Division?)
  • ein paar Zahlen auswendig lernen

Auswendig lernen

Folgende Zuordnungen von Zahlen zu Wochentagen und zu Monaten sollten auswendig gelernt werden:

Wochentage

Bei Wochentagen ist es ziemlich einfach. Wir beginnen mit Sonntag = 0 und für jeden Wochentag danach addieren wir jeweils +1 darauf.

Wochentag Zahl
Sonntag 0
Montag 1
Dienstag 2
Mittwoch 3
Donnerstag 4
Freitag 5
Samstag 6

Monate

Bei den Monaten ist es schwieriger. Hier sind 12 Zahlen auswendig zu lernen.

Monat Zahl Monat Zahl
Janur 6 Juli 5
Februar 2 August 1
März 2 September 4
April 5 Oktober 6
Mai 0 November 2
Juni 3 Dezember 4

Berechnung

Die Formel zur Berechnung des Wochentags lautet:

WOCHENTAGSCODE = (Tagescode + Monatscode + Jahrescode + Jahrhundertcode) modulo 7

Der WOCHENTAGSCODE entspricht dem Wert aus der Wochentag-Tabelle. Ist das Ergebnis beispielsweise 4, also ist WOCHENTAGSCODE = 4, so ist der Wochentag ein Donnerstag.

Aber was sind nun Tagescode, Monatscode, Jahrescode und Jahrhundertcode?

Alles in diesem Kapitel folgende basiert auf dem Datum 30.10.2019.

Tagescode

Der Tagescode ist sehr einfach. Er entspricht dem Tag eines Monats. Für unser Beispieldatum 30.10.2019 wäre der Tagescode somit 30.

Monatscode

Der Monatscode ergibt sich aus der Monate-Tabelle von oben. Für unser Beispieldatum 30.10.2019 wäre der Monatscode somit 6, weil der Monat der Oktober ist.

Jahrescode

Die Berechnung des Jahrescodes ist komplizierter.
Hierfür ignorieren wir das Jahrhundert und Jahrtausend, da diese erst bei der Berechnung des Jahrhundertcodes relevant sind.

Vom Jahr 2019 interessiert uns somit nur die 19.
Diese 19 dividieren wir ohne Rest durch 4, also 19 / 4 = 4.
Die erhaltene Zahl addieren wir nun wieder auf das ursprüngliche Jahr drauf, also 19 + 4 = 23.

Diese 23 ist der Jahrescode.

Die allgemeine Formel lautet:

1
2
x = (Jahr modulo 100) / 4
Jahrescode = Jahr + x

Jahrhundertcode

Meistens ist der Wochentag eines Datums zwischen dem Jahr 1900 und 2100 gefragt.. Seltener eventuell auch zwischen 1600 und 2200..

Da das nur wenige Jahrhunderte sind, empfiehlt es sich, zumindest die Jahrhundertcodes des aktuellen und des letzten Jahrhunderts auswendig zu lernen:

Jahrhundert Jahrhundertcode
16__ 0
17__ 5
18__ 3
19__ 1
20__ 0
21__ 5
22__ 3

Für Jahre zwischen 2000 und 2099 (also auch für das Beispiel 30.10.2019 ist der Jahrhundertcode somit 0.

Eine allgemeinere Formel dafür lautet Jahrhundertcode = (3 - (Jahrhundert modulo 4)) * 2.
Achtung: Mit Jahrhundert sind hier immer die ersten beiden Zahlen des Jahresdarstellung gemeint (also bei 1943 bspw. die 19).

Berechnung des Wochentags

Nun haben wir 4 Codes berechnet:

  • Tagescode = 30
  • Monatscode = 6
  • Jahrescode = 23
  • Jahrhundertcode = 0

Diese können wir jetzt in unsere Formel von oben einsetzen:

1
2
3
4
WOCHENTAGSCODE = (Tagescode + Monatscode + Jahrescode + Jahrhundertcode) modulo 7
WOCHENTAGSCODE = (30 + 6 + 23 + 0) modulo 7
WOCHENTAGSCODE = 59 modulo 7
WOCHENTAGSCODE = 3

Schauen wir in der Wochentag-Tabelle oben nach, merken wir, dass 3 für Mittwoch steht. Mittwoch ist somit der Wochentag des 30.10.2019.

Eine einzige Ausnahme (Schaltjahre)

Bei Schaltjahren wäre diese Rechnung falsch. Aber bei Schaltjahren müssen wir nur wenig anders machen, um zur korrekten Lösung zu kommen.

Vorgehensweise: Ist das Jahr ein Schaltjahr und ist der Monat ein Januar oder Februar (nur dann), so verändern wir die Formel von oben zu:

WOCHENTAGSCODE = (Tagescode + Monatscode + Jahrescode + Jahrhundertcode - 1) modulo 7

Es wird also einfach nur 1 davon subtrahiert.

Schaltjahr-Regel:

  • Ganzzahlig durch 4 teilbare Jahre sind Schaltjahre.
  • ABER: ganzzahlig durch 100 teilbare Jahre sind keine Schaltjahre.
  • ABER: ganzzahlig durch 400 teilbare Jahre sind doch Schaltjahre.

Was viele nicht wissen: Die Jahre 1800, 1900, 2100 und 2200 sind somit keine Schaltjahre!

Beispiele

Beispiel 1 (1. Januar 1902)

Der Jahrhundertcode ist 1.

Der Jahrescode ergibt sich aus:

1
2
2 / 4 = 0
2 + 0 = 2

Der Monatscode ist 6.

Der Tagescode ist 1.

1902 war kein Schaltjahr.

Eingesetzt in die Formel ergibt das:

1
2
3
4
WOCHENTAGSCODE = (Tagescode + Monatscode + Jahrescode + Jahrhundertcode) modulo 7
WOCHENTAGSCODE = (1 + 6 + 2 + 1) modulo 7
WOCHENTAGSCODE = 10 modulo 7
WOCHENTAGSCODE = 3

Der 1. Januar 1902 war somit ein Mittwoch.

Beispiel 2 (10. Juni 2069)

Der Jahrhundertcode ist 0.

Der Jahrescode ergibt sich aus:

1
2
69 / 4 = 17
69 + 17 = 86

Der Monatscode ist 3.

Der Tagescode ist 10.

2069 ist kein Schaltjahr.

Eingesetzt in die Formel ergibt das:

1
2
3
4
WOCHENTAGSCODE = (Tagescode + Monatscode + Jahrescode + Jahrhundertcode) modulo 7
WOCHENTAGSCODE = (10 + 3 + 86 + 0) modulo 7
WOCHENTAGSCODE = 99 modulo 7
WOCHENTAGSCODE = 1

Der 10. Juni 2069 ist somit ein Montag.

Beispiel 3 (20. Februar 1996)

Der Jahrhundertcode ist 1.

Der Jahrescode ergibt sich aus:

1
2
96 / 4 = 24
96 + 24 = 120

Der Monatscode ist 2.

Der Tagescode ist 20.

1996 ist ein Schaltjahr und der Monat ist ein Februar! Somit müssen wir 1 abziehen!

Eingesetzt in die Formel ergibt das:

1
2
3
4
WOCHENTAGSCODE = (Tagescode + Monatscode + Jahrescode + Jahrhundertcode - 1) modulo 7
WOCHENTAGSCODE = (20 + 2 + 120 + 1 - 1) modulo 7
WOCHENTAGSCODE = 142 modulo 7
WOCHENTAGSCODE = 2

Der 20. Februar 1996 ist somit ein Dienstag.

Beispiel 4 (24. Dezember 1644)

Der Jahrhundertcode ist 0.

Der Jahrescode ergibt sich aus:

1
2
44 / 4 = 11
44 + 11 = 55

Der Monatscode ist 4.

Der Tagescode ist 24.

1644 ist ein Schaltjahr, aber der Monat ist kein Januar oder Februar. Somit müssen wir nichts weiter tun.

Eingesetzt in die Formel ergibt das:

1
2
3
4
WOCHENTAGSCODE = (Tagescode + Monatscode + Jahrescode + Jahrhundertcode) modulo 7
WOCHENTAGSCODE = (24 + 4 + 55 + 0) modulo 7
WOCHENTAGSCODE = 83 modulo 7
WOCHENTAGSCODE = 6

Der 24. Dezember 1644 war somit ein Samstag.

Tipps zum schnelleren Berechnen

Anstatt erst alle Zahlen (Tagescode, Monatscode, Jahrescode und Jahrhundertcode) zu addieren und dann modulo 7 zu rechnen, kann man auch schon vorher modulo benutzen, um die Zahlen klein zu halten.

Bezogen auf ein Extrembeispiel (30.10.1999) könnte man wie folgt vorgehen:

1
2
3
4
5
6
7
8
9
10
11
99 / 4 = 24
24 modulo 7 = 3
99 + 3 = 102
102 modulo 7 = 32 modulo 7 = 4

30 modulo 7 = 2

WOCHENTAGSCODE = (Tagescode + Monatscode + Jahrescode + Jahrhundertcode) modulo 7
WOCHENTAGSCODE = (2 + 6 + 4 + 1) modulo 7
WOCHENTAGSCODE = 13 modulo 7
WOCHENTAGSCODE = 6

Dieser Tag war ein Samstag.

Sonstiges

Ein Wochentag-Challenger zum Üben: https://ndsvw.github.io/Which-day-of-the-week/

Which-day-of-the-week

Weltrekorde im Wochentag-Berechnen: http://www.recordholders.org/de/records/dates.html