根据此视频,太阳年是365天,5小时,48分钟,45秒和138毫秒。在当前的公历中,leap年的规则如下:
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年的日历,无论是给予还是接受。
假设全世界都决定,从现在开始,我们每隔四年使用此系统是一个except年,但第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
欢迎就挑战提出建议和反馈。祝你好运,打高尔夫球!