判断日期是否有效

#判断日期
month_30 = [4,6,9,11]
month_31 = [1,3,5,7,8,10,12]
while True:
    #用户输入日期
    date = input('请输入日期(例如20160714)')

    #判断长度是否正确
    if len(date)!=8:
        print('日期长度不正确')
        continue
    #判断是否全为数字
    if not date.isdigit():
        print('请输入正确的日期,全为数字')
        continue

    #判断是否为闰年
    year = int(date[0:4])
    month = int(date[4:6])
    day = int(date[6:])
    #判断月份是否正确
    if month<1 or month>12:
        print('月份输入错误')
        continue

    if year % 4 == 0:
        #判断月份的特殊情况
        # 判断是否闰年,如果闰年2月不超过29天,否则2月不超过28        if month == 2:
            if day<1 or day>29:
                print('闰年2月不超过29')
                continue
    else:
        if month == 2:
            if day<1 or day>28:
                print('该年份2月不超过28')
                continue
    # if year%4 != 0:
    #     if month ==2:
    #         if day<1 or day>28:
    #             print('该年份2月不超过28')
    #             continue

    if month in month_30:
        if day<1 or day>30:
            print('日期不超过30')
            continue

    if month in month_31:
        if day<1 or day>31:
            print('日期不超过31')
            continue
    print('日期输入正确')
    break
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值