【发布时间】:2011-07-16 04:50:33
【问题描述】:
我有一个程序,用户输入一个日期,然后将其与另一个日期进行比较,看看哪个日期在前。
我将如何编写代码让用户输入 2 月 29 日,而程序返回 2 月 28 日(因为没有闰年)?
例子:
def date(prompt):
''' returns the date that user inputs and validates it'''
while True:
try:
date = raw_input(prompt)
if len(date) >= 5:
month = date[0:2]
day = date[3:5]
dateObject = datetime.date(2011, int(month), int(day))
return dateObject
except ValueError:
print "Please enter a valid month and day"
【问题讨论】:
-
这对我来说听起来很像家庭作业。如果是,请添加作业标签,您更有可能得到对您有帮助的答案。
-
在这种情况下,我不会返回不同的日期,而是告诉用户该日期不存在并重试。您可以为此使用递归。
-
@carpetsmoker 我可以这样做,但我想让程序自动输入日期,如果可能的话,可以是 3 月 1 日或 2 月 28 日 :)
-
对,好吧,这很明显......使用我的回答中提到的calender.isleap()...... 如果calender.isleap(年)和月== 2和日== 29: day = 28 ...还是我错过了什么?
标签: python error-handling leap-year