日期问题-蓝桥杯真题-python解法

题目描述

 解题思路

这题无非就是三种情况,把他给你的三个数字整合成三种情况。用datetime.date转换为时间,当然会有存在不合理的时间datetime.date会报错我们直接就用except加pass跳过。要让时间从早到晚无非就是转换成int然后sorted,排除重复的时间就用set。暴力解法就是有点麻烦但是可以慢慢写出来

代码

    import datetime
    n=list(map(int,input().split('/')))
    riqi=[]
    #nianyueri
    if n[0]<60:
        try:
            date=datetime.date(2000+n[0],n[1],n[2])
            riqi.append(str(date).replace('-',''))
        except:
            pass
    if n[0]>=60:
        try:
            date=datetime.date(1900+n[0],n[1],n[2])
            riqi.append(str(date).replace('-',''))
        except:
            pass
    #yuerinian
    if n[2]<60:
        try:
            date=datetime.date(2000+n[2],n[0],n[1])
            riqi.append(str(date).replace('-',''))
        except:
            pass
    if n[0]>=60:
        try:
            date=datetime.date(1900+n[2],n[0],n[1])
            riqi.append(str(date).replace('-',''))
        except:
            pass
    #riyuenian
    if n[2] < 60:
        try:
            date = datetime.date(2000 + n[2], n[1], n[0])
            riqi.append(str(date).replace('-',''))
        except:
            pass
    if n[0] >= 60:
        try:
            date = datetime.date(1900 + n[2], n[1], n[0])
            riqi.append(str(date).replace('-',''))
        except:
            pass
    riqi=sorted(set(riqi))
    for i in riqi:
        print(datetime.date(int(i[:4]),int(i[4:6]),int(i[6:])))

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值