打印增量日期的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。对于第二种情况,增加月份并将日期设置为 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