from dateutil import rrule
from datetime import datetime
from_date = datetime(2022, 1, 1)
end_date = datetime(2023, 2, 2)
diff_hour = rrule.rrule(rrule.HOURLY, dtstart=from_date, until=end_date).count() # 相差小时数
diff_day = rrule.rrule(rrule.DAILY, dtstart=from_date, until=end_date).count() # 相差天数
diff_month = rrule.rrule(rrule.MONTHLY, dtstart=from_date, until=end_date).count() # 相差月数
diff_year = rrule.rrule(rrule.YEARLY, dtstart=from_date, until=end_date).count() # 相差年数
这里需要注意的一点是,相同时间点之间的差距都是1,如下代码:
rrule.rrule(rrule.HOURLY, dtstart=from_date, until=from_date).count() # 相差小时数: 值为1
rrule.rrule(rrule.DAILY, dtstart=from_date, until=from_date).count() # 相差小时数: 值为1
rrule.rrule(rrule.MONTHLY, dtstart=from_date, until=from_date).count() # 相差小时数: 值为1
而如果从时间上:dtstart
>until
,则值都为0