首页 > 解决方案 > Python:计算月份日期之间的差异

问题描述

我正在尝试使用 relativedelta 查找两个日期之间的月差。我能够找到年和日的差异,但是当我按月过滤时得到 0。有什么建议么?

from dateutil import relativedelta as rd
import datetime as date 

dateformat = '%Y/%m/%d'
startDate  = date.strptime('2017/07/01',dateformat).date()
endDate = date.strptime('2019/10/29',dateformat).date()

date_diff = rd.relativedelta(endDate,startDate)

print(date_diff.days)

标签: pythonpython-3.x

解决方案


这是解决方案:

from datetime import datetime

def diff_month(d1, d2):
    return (d1.year - d2.year) * 12 + d1.month - d2.month

assert diff_month(datetime(2010,10,1), datetime(2010,9,1)) == 1
assert diff_month(datetime(2010,10,1), datetime(2009,10,1)) == 12

推荐阅读