回文日期
感觉很麻烦,但是暴力写出来感觉速度还行
s=input()
year = int(s[:4])
#求回文日期
while True:
month=int(str(year)[::-1][:2])
day=int(str(year)[::-1][2:])
if 0<month<=12:
if 0<day<=31:
if month==2:
if year%400==0 or year%4==0:
if day>28:
year+=1
continue
else:
if day>27:
year+=1
continue
elif month==4 or month == 6 or month ==9 or month == 11 :
if day>30:
year+=1
continue
else:
year+=1
continue
ne=str(year)+str(year)[::-1]
if ne==s:
year+=1
continue
else:
print(ne)
break
else:
year+=1
continue
#求ABABBABA,AB的倒叙只要大于0小于等于12就行了
a=s[:2]
while True:
month=int(a[::-1])
if 0<month<=12:
nee=a+a+a[::-1]+a[::-1]
if nee == s:
a=str(int(a)+1)
else:
print(nee)
break
else:
a=str(int(a)+1)
continue
得:
日期库:[datetime]
常用的函数:
日期的传入:
import datetime
t=datetime.date(2019,8,26)
print(type(t))
print(t.day,t.month,t.year)
#<class ‘datetime.date’>
#26 8 2019ISO标准化日历
语法:datetime.date.isocalendar()
返回一个包含三个值的元组(year,weeknumber,weebday):
year年份,weeknumber周序号,weekday星期序号(周一为1…周日为7)eg:
a1 = datetime.date(2019,8,26)
print(a1.isocalendar())
#(2019, 35, 1)
#2019-08-26weekday方法
语法:date对象.weekday()
返回weekday,如果是星期一,返回0,如果星期2,返回1
replace替换方法
语法:date对象.replace(year,month,day)
返回一个替换指定日期字段的新date对象。注意替换是产生新对象,不影响原date对象
import os
import sys
import datetime
# 请在此输入您的代码
date=input()
y=int(date[0:4]) # 将输入的日期转化为年月日的形式
m=int(date[4:6])
d=int(date[6:])
dd=datetime.date(y,m,d) # 将y,m,d转化为日期格式
flag=True # 输出一次回文日期
for i in range(9999999):
dd=dd+datetime.timedelta(days=1) # 日期增加1天
strdd=str(dd).replace('-','') # 将日期转换为字符串的形式并将其中的-符号去掉
if strdd==strdd[::-1]:
if flag:
print(strdd)
flag=False
if strdd[0]==strdd[2]==strdd[-1]==strdd[-3] and strdd[1]==strdd[3]==strdd[-2]==strdd[-4] :
print(strdd)
break