Python 程序检查日期是否有效


2022年2月22日, Learn eTutorial
2087

如何在 Python 中检查日期是否有效?

在这个 Python 程序中,我们需要检查给定日期是否有效。为此,我们必须检查日期和月份是否正确。

对于月份验证,检查月份是否在 1 到 12 之间。如果它大于 12 或小于 1,则日期无效。

通过以下条件检查日期是否有效:

  • 如果月份是 1、3、5、7、8、10 或 12,则日期的最大值为 31;否则无效。
  • 如果月份是 4、6、9 或 11,则日期的最大值为 30。如果日期大于 30,则日期无效。
  • 最后,为了确认二月份的天数,我们使用运算符与年份检查该年份是否是闰年。如果年份与 4 进行运算后的余数等于零,并且年份与 100 进行运算后的余数不等于零 [请参阅闰年 Python 程序了解更多详细信息],则它是闰年,最大天数为 29,否则为 28。如果输入的日期不符合闰年规则,则打印“无效”。

如何在 Python 程序中应用此日期验证逻辑?

在 Python 中,我们使用 split date 函数分别拆分月份、日期和年份,然后使用 int() 数据类型将它们转换为整数。现在,我们使用 if conditionelif condition 来检查我们上面讨论的所有条件。

算法

步骤 1:使用 input 方法从用户那里获取日期输入。

步骤 2:使用分隔符“/”将日期拆分为 ddmmyy

步骤 3:使用 int() 数据类型将 dd、mmyy 的值分配给各自的变量。

步骤 4:使用 if condition 检查月份是否是 1、3、5、7、8、10 或 12,如果是,则将日期的最大值设置为 31。

步骤 5:使用 elif 检查月份是否是 4、6、9 或 11,然后将最大值设置为 30。

步骤 6:使用 if 条件检查年份是否是闰年,通过进行模运算 yy % 4 == 0 且 yy % 100 != 0 或 yy % 400 == 0。如果是闰年,则将最大值设置为 29。

步骤 7:使用 else,如果不是闰年,则最大值为 28。

步骤 8:使用 if condition 检查月份验证,如果月份小于 1 或大于 12,则打印日期无效。

步骤 9:使用 elif 检查日期是否小于 1 或大于我们的最大值,然后打印日期无效。

步骤 10:使用 else 语句 print 输入的日期有效。


对于日期验证程序,我们使用以下 Python 概念,请参阅它们以获得更好的理解:

Python 源代码

                                          date=input("Enter the date: ")

dd,mm,yy=date.split('/')     # splitting the date to day month and year

dd=int(dd)

mm=int(mm)

yy=int(yy)

if(mm==1 or mm==3 or mm==5 or mm==7 or mm==8 or mm==10 or mm==12):   

    max=31

elif(mm==4 or mm==6 or mm==9 or mm==11):    # checking for the day is valid or not,  finding max value

    max=30

elif(yy % 4 == 0 and yy % 100 != 0 or yy % 400 == 0):   # leap year check

    max=29
else:

    max=28

if(mm < 1 or mm > 12):

    print("Date is invalid.")

elif(dd < 1 or dd > max):

    print("Date is invalid.")

else:

   print("Date you entered is valid")
                                      

输出

Enter the date : 5/7/2016

Date you entered is valid