【问题标题】:I don't know how to input a date within a range in python我不知道如何在python中输入一个范围内的日期
【发布时间】:2020-05-26 10:44:41
【问题描述】:

enter image description heredef main():

date_tokens = date_input.split('/')
day = int(date_tokens[0])
month = int(date_tokens[1])
year = int(date_tokens[2])

如果 1990 年 1 月 1 日

main()

【问题讨论】:

标签: python file validation datetime error-handling


【解决方案1】:

python 的 datetime 对象是你的朋友:Datetime Documentation

它使您可以轻松地计算日期,包括您想要的比较。

import datetime

date_input = datetime.date(year, month, day)
if date_input > datetime.date(1990, 1, 1) and date_input < datetime.date(1990, 12, 31):
    date_input = input('Date: ')
else:
    int(input("The date that you enter is not valid, please input a date in between 1/1/1990 and 31/12/1990 "))

另外,如果您希望用户继续输入日期,您可能希望在循环中执行此操作,或者当然将输入放入 date_input

def main():
    date_input = input ('Date: ')
    date_tokens = date_input.split('/')
    day = int(date_tokens[0])
    month = int(date_tokens[1])
    year = int(date_tokens[2])
    date_input = datetime.date(year, month, day)
    if date_input > datetime.date(1990, 1, 1) and date_input < datetime.date(1990, 12, 31):
        date_input = input('Date: ')
    else:
        int(input("The date that you enter is not valid, please input a date in between 1/1/1990 and 31/12/1990 "))
        main()


main()

(我有点懒所以我又打电话给main()。同样的结果期待另一个“日期:”打印)

【讨论】:

    【解决方案2】:

    整个代码是:

    from datetime import date
    
    
    date_tokens = date_input.split("/")
    
    if date(1990,1,1) <= date(int(date_tokens[0]), int(date_tokens[1]), int(date_tokens[2])) <= date(2020,12,31):
        date_input = input('Date: ')
    else:
        input("The date that you enter is not valid, please input a date in between 1/1/1990 and 31/12/1990 ")
    

    【讨论】:

    • 您能否详细说明为什么这可以解决问题?
    • 除了一个额外的点和1900而不是1990,为什么不能解决问题?我写了整个代码。它在我的机器上工作:)
    • 我指的是解释和文档,以帮助用户找到有关其工作原理和进一步研究的信息。就像接受的答案一样,这对其他可能发现此问题相似并且答案有助于解决他们的问题的人很有帮助。
    猜你喜欢
    • 1970-01-01
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多