Mit der Information Wochentag des 1.1. des Jahres und ob es ein Schaltjahr ist, ist der Wochentag für jeden Tag des Jahres bestimmbar.
Wochen haben immer 7 Tage.
Monate haben immer die gleiche zugeordnete Anzahl Tage (abgesehen vom Februar).
Die Länge der Monate von März bis Dezember sind so gewählt, dass in diesem Zeitraum der letzte Tag der Monate mit 31 Tagen jeweils auf einen anderen Wochentag fällt.
Der 31.Januar fällt auf den selben Wochentag wie der 31.Oktober (ohne Schalttag) oder 31.Juli (mit Schalttag).
Tabelle für 2024:
Anhang 57267
Schön, nur war nicht die Frage, auf welchen Wochentag der letzte Tag eines Monats fällt, sondern, bezogen auf ein Jahr, auf welchen Wochentag der 31te 0 Mal bzw. 2 Mal fällt.
Ich hatte mich auf den letzten Tag im Februar (Doomsday) bezogen, weil es die Doomsday-Methode gibt, mit der man den Wochentag für diesen Tag, mit etwas Übung im Kopf, ausrechnen kann.
In Kurzform:
Delphi-Quellcode:
YH:=Year div 100;
YY:=Year mod 100;
A:=YY div 12;
B:=YY mod 12;
C:=B div 4;
DD:=(1+7-YH mod 4 * 2) mod 7; // 1=Dienstag
DD:=(DD+A+B+C) mod 7; // 0=Montag, 6=Sonntag
Ausführlich:
Doomsday
https://de.wikipedia.org/wiki/Doomsday