Güneş yılı bu videoya göre 365 gün, 5 saat, 48 dakika, 45 saniye ve 138 milisaniyedir . Mevcut Gregoryen takvimi ile artık yıllar için kurallar aşağıdaki gibidir:
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
Ne yazık ki, bu yöntem her 3216 yılda bir gün kapalıdır.
Takvimi yeniden düzenlemenin olası bir yöntemi şu kuraldır:
if year is divisible by 128, COMMON YEAR
else if year is divisible by 4, LEAP YEAR
else, COMMON YEAR
Bunun, takvimlerimizi 625.000 yıl daha tekrar etmemizi, almamızı veya almamızı istememesinin yararı vardır.
Diyelim ki tüm dünya, şimdiden başlayarak, her dördüncü yılın bu sistemini kullandığımızdan, her 128'inci yıl hariç, takvimimizi aşağıdaki şekilde değiştirdiğimize karar veriyor:
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
Bu, haftanın gün algoritmalarımızı nasıl etkiler?
Meydan okuma
- 2000 yılından 100000 yılına kadar bir tarih verildiğinde, bu yeni takvime göre haftanın gününü bulun.
- Hangi girişleri kullandığınızı açıkça belirttiğiniz sürece herhangi bir giriş ve çıkış formatına izin verilir.
- Bu kod golf, bu yüzden çözümlerinizi olabildiğince golf yapmaya çalışın!
Test durumları
"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
Mücadele ile ilgili öneri ve geri bildirim bekliyoruz. İyi şanslar ve iyi golf!