不知天上宫阙,今夕是何年。
对于完美日期yyyy/mm/dd,wlxsq的定义是:
年月日中均没有出现数字4,
年月日的数位之和是8的倍数
例如:2020/02/02 就是一个完美日期,没有出现数字4,且数位之和是8的倍数。wlxsq想知道从2020/02/22开始,第88个完美日期是哪个?
#设置初始值
y = 2020
m = 2
d = 2
#设置俩个月份,能被4整除的年份二月份有29天
day_1 = [31,28,31,30,31,30,31,31,30,31,30,31]
day_2 = [ 31,29,31,30,31,30,31,31,30,31,30,31]
ans = 0
#查找第88个
while ans < 88:
#排除包含 4 的年月日
if '4' not in str(y) and '4' not in str(m) and '4' not in str(d):
#获取年月日单独分开数字之和
if (int(str(y)[0])+int(str(y)[1])+int(str(y)[2])+int(str(y)[3])+
int(str(m).zfill(2)[0])+int(str(m).zfill(2)[1])+int(str(d).zfill(2)[0])+(int(str(d).zfill(2)[1]))) % 8 == 0:
ans += 1
print("第",ans)
print(y, m, d)
#找不到,天书加一
d += 1
#闰年
if y % 4 == 0:
#是否天数大于月份应存在数
if d >day_2[m-1]:
m += 1
d = 1
#非闰年
if y % 4 != 0:
if d >day_1[m-1]:
m += 1
d = 1
if m > 12:
m = 1
y += 1
如何有错误的话欢迎指出,会马上改正,非常少感谢。