【问题标题】:Python Date game, Future/Past determinationPython日期游戏,未来/过去的决定
【发布时间】:2014-10-20 02:22:04
【问题描述】:

问题:

无论如何,我的程序一直告诉我,我的日期无效。

作业:

用户将按顺序输入年份、月份编号 (1-12) 和日期编号。该计划将 确定日期是将来还是过去。 (如果输入的日期是今天的日期,假设日期 是过去)。未来日期是尚未发生的日期。如果今天是 7 月 31 日,8 月 1 日 同一年不是过去,只是因为第 (1) 天比今天 (31) 早。对于输入,如果用户输入了无效的月份,则显示适当的错误消息(如“Invalid 月”)并结束程序。如果用户输入的日期无效,则显示相应的错误消息 (如“无效日”)并结束程序。假设二月份有 28 天。换句话说,如果月份是 2 月,输入的日期是 29,显示错误信息并结束程序。

记住:

Thirty days has September, 
April, June, and November
All the rest have 31
Except February, which has 28….

定义一个名为inTheFuture() 的函数,它接受给定的年份数字、月份数字和 天数作为 3 个单独的参数。该函数应返回一个布尔值(TrueFalse)到 指示日期(年、月和日)参数是否在未来。一个True返回 如果日期在未来,则发生; False 如果日期是过去的。它不应该绘制任何图像或文本到 屏幕。它也不应该要求用户输入。它只是确定给定的日期是在未来还是 不是。

找到代表未来的图像和代表过去的图像。示例可能包括 未来的“杰森”,过去的旧马车。如果日期在未来,在画布中间显示你未来的形象。如果日期是过去, 在画布中间显示您过去的图像。在画布顶部,显示“未来”或 “过去”,以与图像匹配的为准。

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

import datetime
def getTodaysDate():
    return datetime.datetime.today()

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

today = getTodaysDate()

那么就可以使用年月日成员变量来获取当前年月日 天。例如:

print(today.month)

将输出当前月份。

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

【问题讨论】:

标签: python date time


【解决方案1】:

这适用于像“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

【讨论】:

    【解决方案2】:

    您应该学习如何使用 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-23
      • 1970-01-01
      • 2022-10-18
      • 1970-01-01
      • 1970-01-01
      • 2022-07-31
      相关资源
      最近更新 更多