太陽の年は、によると、365日、5時間、48分、45秒、138ミリ秒です動画をご覧ください。現在のグレゴリオ暦では、うるう年の規則は次のとおりです。
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
残念なことに、この方法は3216年に1日おきに行われます。
カレンダーを改革する1つの方法は、次のルールです。
if year is divisible by 128, COMMON YEAR
else if year is divisible by 4, LEAP YEAR
else, COMMON YEAR
これは、625,000年間、私たちのカレンダーをもう一度変更する必要はないという利点があります。
全世界が今から始めて、今から4年目のこのシステムを使用すると、128年目を除いてうるう年があり、カレンダーは次のように変更されます。
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
これが私たちの曜日のアルゴリズムにどのように影響しますか?
課題
- 2000年から100000年までの日付を指定すると、この新しいカレンダーの下で曜日を見つけることができます。
- 使用しているフォーマットを明確に指定していれば、どの入出力フォーマットも使用できます。
- これはコードゴルフですので、可能な限りあなたの解決策をゴルフにしてみてください!
テストケース
"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
チャレンジに関する提案やフィードバックは大歓迎です。幸運と良いゴルフ!
ベストアンサー