wid*_*get 39 python compare date
我有以下代码:
if date in (start, end):
print 'in between'
else:
print 'No!'
Run Code Online (Sandbox Code Playgroud)
date,start和end都是格式为1/1的变量.我该怎么做才能打印出正确的结果呢?我尝试将日期定为10/2,以3/14开始并以11/7结束并打印"否!",这意味着它没有正确运行.我想必须将它们格式化为日期格式然后进行比较.谢谢你的帮助!
Bjö*_*lex 75
如果您将所有日期转换为datetime.date,您可以写下以下内容:
if start <= date <= end:
print "in between"
else:
print "No!"
Run Code Online (Sandbox Code Playgroud)
Mac*_*rko 39
由于你仍然不满意,我还有另一个答案.不使用datetime和year.
它只使用内置元组并比较它们:
d1 = (3, 28)
d2 = (3, 31)
d3 = (4, 2)
if d1 < d2 < d3:
print("BETWEEN!")
else:
print("NOT!")
Run Code Online (Sandbox Code Playgroud)
您可以轻松地创建这样的元组:
day = 16
month = 4
d = (month, day)
Run Code Online (Sandbox Code Playgroud)
Mac*_*rko 21
用途datetime.date:
http://docs.python.org/library/datetime.html#datetime.date
< 运算符专门为您重载.
date1 < date2 - 当date1在date2之前时,date1被认为小于date2.
>>> from datetime import date
>>> d1 = date(2011, 3, 28)
>>> d2 = date(2011, 3, 22)
>>> d3 = date(2011, 4, 3)
>>> d2 < d1 < d3
True
Run Code Online (Sandbox Code Playgroud)
或者在你的程序中:
from datetime import date
d1 = date(2011, 3, 28)
d2 = date(2011, 3, 22)
d3 = date(2011, 4, 3)
if d2 < d1 < d3:
print 'in between'
else:
print 'No!'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55045 次 |
| 最近记录: |