📜  打印增量日期的Python程序(如果有效)

📅  最后修改于: 2022-05-13 01:54:52.373000             🧑  作者: Mango

打印增量日期的Python程序(如果有效)

在本文中,我们将编写一个Python程序来输入日期并检查它是否为有效日期。如果有效,则输出增加的日期。否则,打印“无效日期”。

例子:

Input : 1/2/2000
Output: 2/2/2000

Input : 29/2/2002
Output: Invalid date

Input : 31/12/2015
Output: 1/1/2016 

第一步是检查输入的日期是否有效。对于这一步,我们需要首先获得输入月份的最大可能天数。然后我们需要查看日期是否在1和获得的最大天数之间,月份是否在1和12之间。如果这两个条件都满足,则表示它是一个有效日期,我们需要增加它。要增加日期,我们需要处理以下情况:

  1. 如果输入的日期是一年的最后一天。
  2. 如果输入的日期是该月的最后一天。
  3. 如果输入的日期不是该月的最后一天。

对于第一种情况,增加年份并将日期和月份都设置为 1。对于第二种情况,增加月份并将日期设置为 1。对于第三种情况,只需增加日期。如果两个条件中的一个都没有得到满足,那么它就是一个无效的日期。

下面是实现。

Python3
# input the date and split it to day, month and year
day, month, year = map(int, input().split('/'))
 
if month == 2:
 
    # check for February
    if year % 4 != 0:
        d_max = 28
    else:
        d_max = 29
         
elif month in [4, 6, 9, 11]:
   
    # check the months with 30 days
    d_max = 30
 
else:
    d_max = 31
 
if 1 <= day <= d_max and 1 <= month <= 12:
     
    # increment the date since it is a
    # valid date
    if day == d_max:
        day = 1
        if month == 12:
             
            # If this block is entered,
            # then it is the last day of
            # the year
            month = 1
            year += 1
        else:
           
            # If this block is entered,
            # then it is the last day of
            # the month
            month += 1
    else:
       
        # If this block is entered, then it
        # is NOT the last day of the month
        day += 1
    print(str(day) + "/" + str(month) + "/" + str(year))
else:
    print("Invalid date")


输出:

31/12/2015
1/1/2016