Python calcule la différence en jours, semaines, mois et années entre deux dates
1. Le nombre de jours de différence (datetime, parse, rrule)
import datetime as dt
from dateutil import parser
from dateutil import rrule
######################################## date形式天数差
d1 = '2019-07-26'
d2 = '2020-08-01'
######## 法1
# (1)先将字符串-->时间格式date
date1 = dt.datetime.strptime(d1, "%Y-%m-%d").date() ##datetime.date(2018, 1, 6)
date2 = dt.datetime.strptime(d2, "%Y-%m-%d").date() ##datetime.date(2018, 1, 9)
# (2)计算两个日期date的天数差
Days = (date2 - date1).days
######## 法2
Days = (parser.parse(d2) - parser.parse(d1)).days
######## 法3
Days = rrule.rrule(rrule.DAILY, dtstart = date1, until = date2).count()
######################################## datetime形式天数差
date1 = dt.datetime(2019, 7, 26, 15, 35, 10)
date2 = dt.datetime(2020, 8, 1, 18, 30, 20)
######## 法1
Days = (date2 - date1).days
######## 法2
Days = (parser.parse(d2) - parser.parse(d1)).days
######## 法3
Days = rrule.rrule(rrule.DAILY, dtstart = date1, until = date2).count()
2. Secondes de différence (secondes, microsecondes)
# 秒数差
Seconds = (date2 - date1).seconds
# 毫秒数
Microseconds = (date2 - date1).microseconds
3. Différence de numéro de semaine (règle)
Weeks = rrule.rrule(rrule.WEEKLY, dtstart = date1, until = date2).count()
4, différence de mois (règle)
Months = rrule.rrule(rrule.MONTHLY, dtstart = date1, until = date2).count()
Différence de 5 ans
Years = rrule.rrule(rrule.YEARLY, dtstart = date1, until = date2).count()