Comment retourner ou transformer un timedelta, qui dépasse 24 heures, en un objet contenant le nombre total d'heures et de minutes (par exemple, 26h30) au lieu de "1 jour, 2h30"?
Vous pouvez utiliser total_seconds()
pour calculer le nombre de secondes. Cela peut alors être transformé en minutes ou en heures:
>>> datetime.timedelta(days=3).total_seconds()
259200.0
Compléter la réponse de Visser en utilisant timedelta.total_seconds()
:
import datetime
duration = datetime.timedelta(days = 2, hours = 4, minutes = 15)
Une fois que nous avons eu un objet timedelta
:
totsec = duration.total_seconds()
h = totsec//3600
m = (totsec%3600) // 60
sec =(totsec%3600)%60 #just for reference
print "%d:%d" %(h,m)
Out: 52:15
offset_seconds = timedelta.total_seconds()
if offset_seconds < 0:
sign = "-"
else:
sign = "+"
# we will prepend the sign while formatting
if offset_seconds < 0:
offset_seconds *= -1
offset_hours = offset_seconds / 3600.0
offset_minutes = (offset_hours % 1) * 60
offset = "{:02d}:{:02d}".format(int(offset_hours), int(offset_minutes))
offset = sign + offset