判断有效日期

def leapyear():
    '''判断是否为闰年'''
    year = int(date[:4])
    if year % 400 == 0:
        print('是闰年')
    elif year % 4 == 0 and year % 100 != 0:
        print('是闰年')
    else:
        print('不是闰年')

def month():
    '''判断月份输入是否正确'''
    month = int(date[4:6])
    if month in range(1,13):
        print('月份输入正确')
    else:
        print('月份不正确')

def day():
    '''判断不同月份对应的天数是否有误'''
    month = int(date[4:6])
    day = int(date[6:8])
    year = int(date[:4])
    if month in day30:
        if day <=30:
            print('日期正确')
        else:
            print('日期不正确')
    elif month in day31:
        if day <=31:
            print('日期正确')
        else:
            print('日期不正确')
    elif month == 2 and (year % 400 == 0 or year % 4 == 0 and year % 100 != 0):
        if day <= 29:
            print('日期正确1')
        else:
            print('日期输入不正确1')
    elif month == 2:
        if day <=28:
            print('日期正确2')
        else:
            print('日期输入不正确2')
    else:
        print('日期输入不正确')


date = input('请输入年月日:')
day30 = 4,6,9,11
day31 = 1,3,5,7,8,10,12

def main():
    if len(date)==8 and date.isdigit():
        #判断日期是否正确

        #判断闰年
        leapyear()

        #月份判断
        month()

        #日期判断
        day()

    else:
        print('输入日期为8位,请重新输入')

#主函数
main()
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值