我的程序一直告诉我,无论如何,我的约会无效。
用户将按该顺序输入年份,月份编号(1-12)和日期编号。该计划将 确定日期是在将来还是在过去。 (如果输入的日期是今天的日期,则假设日期 是在过去)。未来日期是尚未发生的日期。如果今天是7月31日,8月1日的 同一年不是过去,只是因为第一天(1)发生在今天(31)之前。对于输入,如果用户输入无效月份,则显示相应的错误消息(如“无效” 月“)并结束该计划。如果用户输入无效日期,则显示相应的错误消息 (如“无效日”)并结束该计划。假设2月28日。换句话说,如果月份是 2月和输入的日期是29,显示错误消息并结束程序。
记住:
Thirty days has September,
April, June, and November
All the rest have 31
Except February, which has 28….
定义一个名为inTheFuture()
的函数,该函数接受给定的年份编号,月份编号和a
天数作为3个单独的参数。该函数应返回一个布尔值(True
或False
)
指示日期(年,月和日)参数是否在将来。 True
返回False
如果日期是将来发生; import datetime
def getTodaysDate():
return datetime.datetime.today()
如果日期是过去的话。它不应该绘制任何图像或文本
屏幕。它也不应该要求用户输入。它只是确定给定日期是在将来还是
不。
找到代表未来的图像,以及代表过去的图像。例子包括 类似于未来的“杰森”,以及过去的旧货车。如果日期是未来,请在画布中间显示未来的图像。如果日期是过去的, 在画布中间显示过去的图像。在画布的顶部,显示“未来”或 “在过去”,无论哪个匹配图像。
要查找当前日期,您可以将此导入和功能添加到您的代码中:
today = getTodaysDate()
如果您在代码中的某处调用此函数:
print(today.month)
然后,您可以使用年,月和日成员变量来获取当前年,月和 天。例如:
{{1}}
会输出当月。
这是我认为已完成的程序。我错过了什么?
答案 0 :(得分:0)
你应该学习如何使用if,else和elif。检查以下代码:
import datetime
def getTodaysDate():
return datetime.datetime.today();
today = getTodaysDate();
print(today)
#def inTheFuture():
year= input ("Enter Year: ");
month= int(input ("Enter Month: "));
day= int(input ("Enter Day: "));
print"Correct, Your Day is:",day,"/",month,"/",year
if (month > 12):
print("How many months in a year? Not as many as you think I suppose..")
raise SystemExit
elif month in [1,3,5,7,8,10,12]:
if day > 31:
print("What is a month where you are from?")
raise SystemExit
else:
print"Correct, Your Day is:",day,"/",month,"/",year
elif (month == 2):
if (day > 28):
print("February only has so many days!")
raise SystemExit
else:
print"Correct, Your Day is:",day,"/",month,"/",year
elif (month in [4,6,9,11]):
if (day > 30):
print("That day is not possible!")
else:
print"Correct, Your Day is:",day,"/",month,"/",year
答案 1 :(得分:0)
适用于" 24.12.2016"等日期输入。在strptime()行中将其更改为您的需求。
import datetime
from time import strptime
def date_in_the_future(date):
datetime_string = strptime(date, "%d.%m.%Y")
d = datetime.datetime(datetime_string[0],datetime_string[1],datetime_string[2])
now = datetime.datetime.now()
delta = d - now
diff = delta.days + 1
if diff > 0:
return True
else:
return False