【问题标题】:How to check if a date is expired but also make sure that it is no more than a year from today's date如何检查日期是否已过期,但还要确保距今天日期不超过一年
【发布时间】:2018-02-06 09:20:58
【问题描述】:

我曾尝试使用日期时间代码,但我真的不太了解它。我设法允许用户输入日期,但我不太确定如何比较日期。这是我到目前为止所拥有的。

from datetime import datetime
now = datetime.now()

import re

validDate = False
while not validDate:
    cdate = input("please enter your card expiration date: ")

    if (re.match("^([0-9]{2})/([0-9]{2})/([0-9]{4})$", cdate)):
        print("Valid")
        validDate = True
    else:
        print("Error. Enter date in format dd/mm/yyyy")

我真的不知道如何比较两者,请帮助我。如果您对本网站上的代码有任何建议,请告诉我。与此同时,我会继续努力研究。

【问题讨论】:

  • How to compare two dates?的可能重复
  • 我查看了如何比较两个日期并尝试了代码,但它对我不起作用,
  • 请使用您当时尝试的代码更新您的问题。在您的示例代码中还没有比较。

标签: python date time compare


【解决方案1】:

你可以试试这个:

 from datetime import datetime, date
 datet = input("please enter your card expiration date: ")

 ExpirationDate = datetime.strptime(datet,"%Y-%m-%d").date()
 now = date.today()
 if ExpirationDate < now:
      print("expired")

对于您的第二个条件,您可以使用ExpirationDate.year 作为输入日期的年份,使用now.year 作为当前年份。有了它,您可以根据需要编写条件。

 if ExpirationDate.year > now.year+1:
      print("date not accepted")
 elif ExpirationDate < now :
      print("expired")
 else :
      print("valid ")

剩下的代码都是一样的

更新:

from datetime import datetime, date

while True:
    datet = input("please enter your card expiration date: ")
    ExpirationDate = datetime.strptime(datet, "%Y-%m-%d").date()
    now = date.today()
    if ExpirationDate.year > now.year + 1:
         print("date not accepted")
         continue
    elif ExpirationDate < now:
         print("expired")
         continue
    else:
         print("valid ")
         break

如果date not accptedexpired 会再次要求输入日期

【讨论】:

  • 我很累,但每次我输入一个日期它都没有做任何事情。它只是移动到代码的下一部分
  • 这就是你所说的输入格式吗? 2016-06-12
  • 那么你想打印什么时候过期?当输入日期小于今天或大于今天?
  • 小于今天的时候。但也有从今天起一年多以后的时候
  • 谢谢你,如果我输入的日期小于今天,它现在可以工作。我怎样才能完成代码的第二部分,并且不允许用户输入未来一年以上的日期。
【解决方案2】:

在你的情况下,你应该使用calendar

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    相关资源
    最近更新 更多