Python日期游戏,未来/过去的决心

时间:2014-10-20 02:22:04

标签: python date time

问题:

我的程序一直告诉我,无论如何,我的约会无效。

分配:

用户将按该顺序输入年份,月份编号(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个单独的参数。该函数应返回一个布尔值(TrueFalse) 指示日期(年,月和日)参数是否在将来。 True返回False 如果日期是将来发生; import datetime def getTodaysDate(): return datetime.datetime.today() 如果日期是过去的话。它不应该绘制任何图像或文本 屏幕。它也不应该要求用户输入。它只是确定给定日期是在将来还是 不。

找到代表未来的图像,以及代表过去的图像。例子包括 类似于未来的“杰森”,以及过去的旧货车。如果日期是未来,请在画布中间显示未来的图像。如果日期是过去的, 在画布中间显示过去的图像。在画布的顶部,显示“未来”或 “在过去”,无论哪个匹配图像。

要查找当前日期,您可以将此导入和功能添加到您的代码中:

today = getTodaysDate()

如果您在代码中的某处调用此函数:

print(today.month)

然后,您可以使用年,月和日成员变量来获取当前年,月和 天。例如:

{{1}}

会输出当月。

这是我认为已完成的程序。我错过了什么?

2 个答案:

答案 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