Lors de l'ajout ou de la soustraction du type datetime, le type timedelta est renvoyé, mais il n'a que des attributs plus fins que le jour, et j'ai été recherché sur Google à chaque fois lors du calcul du mois ou de l'année. Je vais donc le résumer.
-Générer une nouvelle date en ajustant la date et le nombre de mois (utiliser relativedelta * timedelta ne peut pas gérer les mois) -Calculer le nombre de mois et d'années de la différence entre deux dates (utilisez monthmod)
#Créer la date et l'heure de début avec le type datetime-----------
from datetime import datetime
dt1 = datetime(2018,5,6) # datetime.datetime(2018, 5, 6, 0, 0)
#Générez une nouvelle date en ajoutant n'importe quel nombre de mois et de jours à la date et à l'heure de début-----------
from dateutil.relativedelta import relativedelta
dt2 = start + relativedelta(months=20, days=25) # datetime.datetime(2020, 1, 31, 0, 0)
#Trouvez la différence entre deux dates au quotidien-----------
dt_dif = (dt2 - dt1) # datetime.timedelta(days=635)
print(dt_dif.days) # 635
# print(dt_dif.months) #Sera une erreur
#La différence entre les deux dates, mensuellement/Calculer sur une base annuelle-----------
from monthdelta import monthmod #Si vous obtenez une erreur, installez MonthDelta
mmod = monthmod(dt1, dt2) # (monthdelta(20), datetime.timedelta(days=25)) <-Taple (comme une liste)
##Différence mensuelle (arrondissez le reste)
print(mmod[0].months) # 20
##Différence annuelle (arrondissez le reste) Divisez la différence mensuelle par 12. Il y a plusieurs jours dans le mois, mais comme le nombre de mois dans l'année est toujours de 12, c'est correct
print(mmod[0].months//12) # 1
https://pythonhosted.org/MonthDelta/
Recommended Posts