3 回答
TA贡献1790条经验 获得超9个赞
使用-得到两者之间的区别datetime对象,并采取days会员。
from datetime import datetime
def days_between(d1, d2):
d1 = datetime.strptime(d1, "%Y-%m-%d")
d2 = datetime.strptime(d2, "%Y-%m-%d")
return abs((d2 - d1).days)
TA贡献1719条经验 获得超6个赞
另一个简短的解决方案:
from datetime import date
def diff_dates(date1, date2):
return abs(date2-date1).days
def main():
d1 = date(2013,1,1)
d2 = date(2013,9,13)
result1 = diff_dates(d2, d1)
print '{} days between {} and {}'.format(result1, d1, d2)
print ("Happy programmer's day!")
main()
TA贡献1788条经验 获得超4个赞
我尝试了上面larsmans发布的代码,但是有两个问题:
1)原样的代码将引发mauguerra提到的错误2)如果将代码更改为以下内容:
...
d1 = d1.strftime("%Y-%m-%d")
d2 = d2.strftime("%Y-%m-%d")
return abs((d2 - d1).days)
这会将您的datetime对象转换为字符串,但是有两件事
1)尝试执行d2-d1将会失败,因为您无法在字符串上使用减号运算符,并且2)如果您阅读上述答案的第一行,则想在两个datetime对象上使用-运算符,但是将它们转换为字符串
我发现您实际上只需要以下内容:
import datetime
end_date = datetime.datetime.utcnow()
start_date = end_date - datetime.timedelta(days=8)
difference_in_days = abs((end_date - start_date).days)
print difference_in_days
添加回答
举报