cc9542 2022-04-13 08:59 采纳率: 96.7%
浏览 165
已结题

python 如何重复判断输入的日期是否符合条件

怎么连续判断日期输入是否正确?
是否是有效日期
输入的是字符串
正确格式是
日/月/年

输入 2021/02/12
结果 输入不正确(请按 日/月/年 输入)

输入 35/13/2021
结果 35/13/2021 不是有效的日期

输入 28/02/2022
结果 输入正确!

  • 写回答

3条回答 默认 最新

  • 溪风沐雪 2022-04-13 09:36
    关注

    while循环,内部大型if...else判断,简单的办法是用正则匹配,然后对个例进行分析,我这里给个逻辑比较易懂的例子,你看看:

    while True:
        date = input("请输入一个日期,格式 月/日/年:")
        if len(date)==10: #标准格式长度为10
            date_arr = date.split("/") #用/分割字符串
            if len(date_arr)==3 and len(date_arr[0])==2 and len(date_arr[1])==2 and len(date_arr[2])==4: #分割为3段,每段的长度分别是2、2、4
                if date_arr[0].isdigit() and date_arr[1].isdigit() and date_arr[2].isdigit(): #年月日都需要是数字类型字符串
                    m = int(date_arr[0]) #月转为数字
                    d = int(date_arr[1]) #日转为数字
                    y = int(date_arr[2]) #年转为数字
                    if m>0 and m<13: #判断月份区间
                        if (m==1 or m==3 or m==5 or m==7 or m==8 or m==10 or m==12) and (d>0 and d<32): #31天的月
                            print("格式正确")
                            continue
                        elif (m==4 or m==6 or m==9 or m==11) and (d>0 and d<31): #30天的月
                            print("格式正确")
                            continue
                        elif m==2:
                            if (y%4==0 and y%100!=0) or y%400==0 and (d>0 and d<30): #闰年2月
                                print("格式正确")
                                continue
                            elif (y%4!=0 or (y%4==0 and y%100==0)) and (d>0 and d<29): #非闰年二月
                                print("格式正确")
                                continue
                            else:
                                print("输入内容有误,日数不对")
                        else:
                            print("输入内容有误,日数不对")
                    else:
                        print("输入内容有误,月份不对")
                else:
                    print("输入内容有误,非数字")
            else:
                print("输入内容有误,格式不匹配")
        else:
            print("输入内容有误,长度不符合")
    
    

    img


    如有帮助,请采纳

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月14日
  • 已采纳回答 4月13日
  • 修改了问题 4月13日
  • 创建了问题 4月13日

悬赏问题

  • ¥15 输入一堆单词,使其去重输出
  • ¥15 qc代码,修改和添加东西
  • ¥50 Unity的粒子系统使用shadergraph(内置管线)制作的一个顶点偏移shader,但是粒子模型移动时,顶点也会偏移
  • ¥15 如何用python处理excel的数据(极值标准化)
  • ¥15 三向应力状态求剪应力
  • ¥15 jupyter notebook如何添加libGL.so.1库
  • ¥20 easyPoi能否实现下拉多选或者复选框
  • ¥15 网桥在转发帧时,会变帧的源地址和目的地址吗?
  • ¥15 用Multisim设计汽车尾灯控制电路
  • ¥100 求用matlab求解上述微分方程的程序代码