L'année solaire est de 365 jours, 5 heures, 48 minutes, 45 secondes et 138 millisecondes, selon cette vidéo . Avec le calendrier grégorien actuel, les règles pour les années bissextiles sont les suivantes:
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
Malheureusement, cette méthode est désactivée d'un jour tous les 3216 ans.
Une méthode possible pour réformer le calendrier est la règle suivante:
if year is divisible by 128, COMMON YEAR
else if year is divisible by 4, LEAP YEAR
else, COMMON YEAR
Cela a l'avantage de ne pas nous obliger à changer à nouveau nos calendriers pendant encore 625 000 ans, à donner ou à prendre.
Supposons que le monde entier décide que, à partir de maintenant, nous utilisons ce système de chaque quatrième année est une année bissextile sauf tous les 128 ans, en changeant nos calendriers comme suit:
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
Comment cela affecterait-il nos algorithmes de jour de la semaine?
Le défi
- Étant donné une date de l'année 2000 à l'année 100000, retrouvez le jour de la semaine sous ce nouveau calendrier.
- Tout format d'entrée et de sortie est autorisé tant que vous spécifiez clairement les formats que vous utilisez.
- C'est du golf de code alors essayez de rendre vos solutions aussi golfiques que possible!
Cas de test
"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
Les suggestions et commentaires sur le défi sont les bienvenus. Bonne chance et bon golf!