Das Sonnenjahr beträgt laut diesem Video 365 Tage, 5 Stunden, 48 Minuten, 45 Sekunden und 138 Millisekunden . Mit dem aktuellen Gregorianischen Kalender gelten folgende Regeln für Schaltjahre:
if year is divisible by 400, LEAP YEAR
else if year is divisible by 100, COMMON YEAR
else if year is divisible by 4, LEAP YEAR
else, COMMON YEAR
Leider ist diese Methode alle 3216 Jahre um einen Tag verschoben.
Eine mögliche Methode zur Reformierung des Kalenders ist die folgende Regel:
if year is divisible by 128, COMMON YEAR
else if year is divisible by 4, LEAP YEAR
else, COMMON YEAR
Dies hat den Vorteil, dass wir unsere Kalender für weitere 625.000 Jahre nicht erneut ändern müssen.
Angenommen, die ganze Welt beschließt, dass dieses System ab sofort jedes vierte Jahr ein Schaltjahr ist, mit Ausnahme jedes 128. Jahres, und unsere Kalender wie folgt ändert:
YEAR GREGORIAN 128-YEAR
2044 LEAP LEAP
2048 LEAP COMMON
2052 LEAP LEAP
...
2096 LEAP LEAP
2100 COMMON LEAP
2104 LEAP LEAP
...
2296 LEAP LEAP
2300 COMMON LEAP
2304 LEAP COMMON
2308 LEAP LEAP
Wie würde sich dies auf unsere Algorithmen für den Wochentag auswirken?
Die Herausforderung
- Wenn Sie ein Datum zwischen 2000 und 100000 eingeben, suchen Sie den Wochentag unter diesem neuen Kalender.
- Jedes Eingabe- und Ausgabeformat ist zulässig, solange Sie klar angeben, welche Formate Sie verwenden.
- Dies ist Codegolf, also versuchen Sie, Ihre Lösungen so golfig wie möglich zu gestalten!
Testfälle
"28 February 2048" -> "Friday"
"March 1, 2048" -> "Sat"
(2100, 2, 29) -> 0 # 0-indexed with Sunday as 0
"2100-02-29" -> 7 # 1-indexed with Sunday as 7
"28 Feb. 2176" -> "Wednesday"
"1-Mar-2176" -> "Th"
"28/02/100000" -> "F" # DD/MM/YYYYYY
"Feb. 29, 100000" -> 6 # 1-indexed with Sunday as 7
"03/01/100000" -> 1 # MM/DD/YYYYYY and 1-indexed with Sunday as 1
Anregungen und Feedback zur Herausforderung sind willkommen. Viel Glück und gutes Golfen!