像20200202这种完全对称的公历日期,真的是千年一遇吗?

ZhangJian 2020-03-02 n次浏览 生活随笔 编辑

2020年2月2日这个日子是无数人心中迈入婚姻殿堂的好日子,因为其对称,正着读和反过来读是完全一样的,并且20还有谐音“爱你”的意思。 但实际上,这传说中的千年对称日其实并非千年一遇,我运用简单的Python编程计算了未来千年内的所有对称日。显然这是一个判断字符串是否回文的问题,只不过该字符串为日期。直接利用暴力求解的方法,遍历这一千年里每一个日期是否回文。

import datetime

start=datetime.datetime(2020,2,2)
end=datetime.datetime(3020,2,2)
count=0

for i in range(1,(end-start).days+1):
    days=str(start+datetime.timedelta(days=i))
    if days.replace("-","")[:8]==days.replace("-","")[:8][::-1]:
        print(days[:10])
        count+=1
print(count)

程序输出得到未来千年内还会有35个对称日,最近的一个对称日是2021-12-02 另外还有以下这些

2030-03-02
2040-04-02
2050-05-02
2060-06-02
2070-07-02
2080-08-02
2090-09-02
2101-10-12
2110-01-12
2111-11-12
2120-02-12
2121-12-12
2130-03-12
2140-04-12
2150-05-12
2160-06-12
2170-07-12
2180-08-12
2190-09-12