Python: Date compare不能通过相等性测试



我是python初学者。下面是我要运行的代码:

matexp = input("What's the material expiration date (mm/dd/yy): ")
matexpir = datetime.strptime(matexp, "%m/%d/%y")
d1 = datetime.today()
d2 = timedelta(days=30)
d3 = d1 + d2
if matexpir == d3:
matstat = "CAUTION"
elif matexpir <= d1:
matstat = "EXPIRED"
else :
matstat = "Null"

在测试这段代码时,我可以让它在表上打印matstat或Status = 'EXPIRED',但是当我试图让它打印'CAUTION'时,它不会直接转到'Null'。为什么呢?我该怎么修呢?请帮助。

谢谢。

在当前的形式中,测试比较的是日期日期时间,这显然是不相等的。

要解决这个问题,比较应该是对等的。日期比较,除去时间因素


解决办法:

改变:

matexpir = datetime.strptime(matexp, "%m/%d/%y")

:

matexpir = datetime.strptime(matexp, "%m/%d/%y").date()

然后改成

d1 = datetime.today()

:

d1 = datetime.today().date()    

完整解决方案:

from datetime import datetime, timedelta
matexp = input("What's the material expiration date (mm/dd/yy): ")
matexpir = datetime.strptime(matexp, "%m/%d/%y").date()
d1 = datetime.today().date()
d2 = timedelta(days=30)
d3 = d1 + d2
if matexpir == d3:
matstat = "CAUTION"
elif matexpir <= d1:
matstat = "EXPIRED"
else:
matstat = "Null"

最新更新