我有两个不同的日期,我想知道它们的天数之差。日期格式为“YYYY-MM-DD”。
我有一个函数,可以添加或减去一个给定的数字到日期:
def addonDays(a, x):
ret = time.strftime("%Y-%m-%d",time.localtime(time.mktime(time.strptime(a,"%Y-%m-%d"))+x*3600*24+3600))
return ret
其中A是日期,x是我想添加的天数,结果是另一个日期。
我需要一个函数,其中我可以给出两个日期,结果将是一个int日期差异在天。
另一个简单的解决方案:
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()
我尝试了larsmans上面发布的代码,但是,有几个问题:
1)代码会抛出maugeerra提到的错误
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