Сонячний рік становить 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 років.
Одним з можливих методів реформування календаря є наступне правило:
if year is divisible by 128, COMMON YEAR
else if year is divisible by 4, LEAP YEAR
else, COMMON YEAR
Це має перевагу в тому, що ми не вимагаємо від нас знову міняти календарі ще 625 000 років, дарувати чи брати.
Скажімо, весь світ вирішує, що, починаючи з цього часу, ми використовуємо цю систему кожного четвертого року - це високосний рік, крім кожного 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
Пропозиції та відгуки щодо виклику вітаються. Успіхів і хорошого гольфу!