Wochentag in 3 Befehlen: Neuer Algorithmus schlägt Compiler-Ausgabe

A faster way to calculate the day of the week

Wochentag in 3 Befehlen: Neuer Algorithmus schlägt Compiler-Ausgabe

Die Umwandlung eines Tageszählers in den Wochentag klingt trivial, ist aber überraschend komplex. Dieser Artikel stellt eine Reihe extrem schneller Funktionen vor, die alle bisherigen Lösungen übertreffen – oft mit nur einer Multiplikation plus zwei Zyklen Latenz. Überraschend: Der ISO-Wochentag (1–7) lässt sich mit denselben Befehlen berechnen wie der Unix-Wochentag (0–6), nur mit anderen Konstanten. Die Techniken verallgemeinern auf x % (2^N − 1) und bieten neue schnelle Modulo-Methoden für Divisoren wie 24 und 60, relevant für die Zeitmessung. Ein Highlight ist eine 3-Befehls-Sequenz, die über den gesamten vorzeichenbehafteten 32-Bit-Bereich korrekt ist.

Ein überraschendes Ergebnis wird präsentiert: Der Wochentag kann im ISO-Format ([1‥7] statt [0‥6]) mit exakt denselben Befehlen berechnet werden, nur mit angepassten Konstanten (und ohne Geschwindigkeitseinbuße).

Mehr von diesem Tag

2026-08-20