/ Python

Wochentags-Wiederholung in Python

Auf eine Anfrage hin wollte ich wissen, in welchem Abstand sich der Wochentag für ein bestimmtes Datum des Jahres wiederholt. Da findet sich im Internet eh gleich mal so einiges, und anhand der Schaltjahresregel lässt sich das auch durchdenken. Oder man nimmt ein wenig Python.

import datetime

i = 1
weekdaylist = []

while i < 100:
	oct26 = datetime.date(i, 10, 26).weekday()    
	weekdaylist.append(oct26)
	i = i + 1
    
replist = []
i = 1
replist = weekdaylist[:i]
while i < 49 and replist != weekdaylist[i:2*i]:
	i = i + 1
    replist = weekdaylist[:i]

print i

Ergibt einen Zyklus von 28 Jahren.

Dabei werden natürlich zwei Regeln außer acht gelassen:

  • durch 100 teilbare Jahre sind keine Schaltjahre
  • durch 400 teilbahre aber schon

Wird der obige Code ein wenig angepasst stellt man fest, dass der Zyklus dafür zumindest über 5000 Jahren liegt. Dürfte für die meisten Anwendungsfälle also zu vernachlässigen sein.