蓝桥杯 历届试题 python 回文日期

python 回文日期
主要思路是每一年只会有一个回文日期,所以我们通过年份去构造一个回文数,再判断这个回文数满不满足月份日期的格式,如果满足则是回文日期

st_time=input()
year=int(st_time[0:4])
big_month=[1,3,5,7,8,10,12]
flag1=0
flag=0
while(True):
    s=str(year)
    time=s+s[::-1]
    month=int(time[4:6])
    day=int(time[6:8])
    if(flag==0):
        if(month<int(st_time[4:6]) or day<int(st_time[6:8])):
            flag=1
            year+=1
            continue
    if(big_month.count(month)==1):
        if(month<=12 and month>0 and day<=31 and day>0 and flag1==0):
            time1=time
            flag1=1
        if(month<=12 and month>0 and day<=31 and day>0
           and s[0]==s[2] and s[1]==s[3]):
            time2=time
            break
    else:
        if(month==2):
            if(year%400==0 or (year%4==0 and year%100!=0)):
                if(month<=12 and month>0 and day<=29 and day>0 and flag1==0):
                    time1=time
                    flag1=1
                if(month<=12 and month>0 and day<=29 and day>0
                       and s[0]==s[2] and s[1]==s[3]):
                        time2=time
                        break
            else:
                if(month<=12 and month>0 and day<=28 and day>0 and flag1==0):
                    time1=time
                    flag1=1
                if(month<=12 and month>0 and day<=28 and day>0
                       and s[0]==s[2] and s[1]==s[3]):
                        time2=time
                        break
        else:
            if(month<=12 and month>0 and day<=30 and day>0 and flag1==0):
                time1=time
                flag1=1
            if(month<=12 and month>0 and day<=30 and day>0
                   and s[0]==s[2] and s[1]==s[3]):
                    time2=time
                    break
    year+=1
    flag=1
print(int(time1))
print(int(time2))
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值