对称年月日有哪些

人气:147 ℃/2023-07-22 13:40:52

对称年月日有2010年1月2日(20100102)、2011年11月2日(20111102)、2020年2月2日(20200202)、2021年12月2日(20211202)等。对称年月日是指公历纪年日期中数字左右完全对称的日期。

对称日期非常难得,在这个罕见又特殊的日子里,不少新人为了讨个好彩头,会选择在对称日结婚,留下一份珍贵的纪念。

据传在对称日许愿可以心想事成,由此导致很多网友会互发短信祝福,致使这一概念在网络间而广泛传播。

度过了2021年12月2日(20211202)之后,接下来的对称日,就要等到9年后的2030年3月2日了,即“20300302”。

有几个对称日期

世界完全对称日到底有多少个?

20211202 今天是一个特别美好的日子!

今天的朋友圈被“世界完全对称日”刷屏了!——这个节日是指公历纪年日期中数字左右完全对称的日期。

这样的对称日,时间间隔并不固定,最近的四次分别是2010年1月2日(20100102)、2010年1月2日(20100102)、2011年11月2日(20111102)和2021年2月2日(20200202);但是再往前的一次居然要追溯到1380年8月31日,也就是明朝洪武十三年;还有之后的近几十年时间里,每十年都会有一个对称日。

为验证这些结论是否正确,我来写段代码验证一下结论;顺便也计算一下每个世纪有多少个对称日,以及对称日总数。根据定义对称日只能是8位数,所以只要在1000.1.1~9999.12.31之间寻找。代码如下:

def SymmetricalDay(year1,year2):

res = []

import datetime as dt

for i in range(year1,year2):

for j in range(1,13):

for k in range(1,32):

try: t = dt.date(i,j,k).strftime('%Y%m%d')

except: pass

if t==t[::-1]:

res.append(t)

return res

total = 0

for j in range(1000,10000,100):

count = 0

for i,d in enumerate(SymmetricalDay(j,100 j)):

count = 1

total = 1

print(d,end='\n' if i%5==4 else '\t')

if count!=0: print()

print(f'{j}-{100 j},Count:',count)

print('Total:',total)

由计算结果可知,之前的结论都是正确的;得出新结论有:

1 .有公元纪年以来,前20个世纪只有43个;

2. 从21世纪开始,每100年都有12个;

3. 9200-9300年,python程序重复计算9220.02.29了2次(14-2=2)。

所以,“完全对称日”总共有:43 12x24=331。

程序的执行结果是333个,错误的原因是9220.02.29重复计算了2次,后一个“92200229”实际上是9220.02.30,9220.02.31不存在的日子,不知道是不是python的datetime中转换引起的bug。

推荐

首页/电脑版/网名
© 2026 NiBaKu.Com All Rights Reserved.