Seite 1 von 1
timedelta in stunden umrechnen
Verfasst: Freitag 27. Juni 2008, 21:39
von wrongspot
Hallo meine erste Post hier,
folgendes Problem. Ich möchte ein datetime.timedelta Object in Stunden umrechnen. Hier ein Beispiel:
(1 day, 0:00:00) soll in Stunden konvertiert werden, es müssten also 24 h sein. Vielleicht gibt es einen effizienten Weg das ganze auch in Minuten oder Sekunden umzurechnen.
Hat jemand eine helfende Idee?
Danke,
wrongspot
Verfasst: Freitag 27. Juni 2008, 22:12
von BlackJack
In Stunden: ``delta.days * 24 + delta.seconds / 3600``.
Verfasst: Freitag 27. Juni 2008, 23:30
von wrongspot
ok das ist schon mal ein Anfang, aber bei einem timedelta von ( 0:45:00 ) kommt laut code genau 0 raus. mhhhh......
Verfasst: Samstag 28. Juni 2008, 00:23
von wrongspot
Ok. mit ein bisschen probieren habe ich mir eine Funktion geschrieben, die das timedelta in "hh:mm" ausgibt, so sollte es klappen
Code: Alles auswählen
def timedeltaToHours(delta):
sec = delta.seconds
daysToHours = delta.days * 24
hours = sec // (60 * 60)
minutes = (sec - (hours * 60 * 60)) // 60
return str(hours + daysToHours) + ":" + str(minutes) + " h"
Danke ans Forum für die Ideengebung!
wrongspot
Verfasst: Samstag 28. Juni 2008, 04:53
von numerix
Soviel Arbeit hättest du dir gar nicht machen müssen.
BlackJack hat in seiner Berechnung lediglich einen Punkt vergessen.
Nein, nicht einmal vergessen - er ist nur aus Versehen hinter die Anführungszeichen gerutscht
Code: Alles auswählen
import datetime
delta = datetime.timedelta(minutes=45)
hours = delta.hours*24+delta.seconds/3600.0
Verfasst: Samstag 28. Juni 2008, 08:25
von wrongspot
Bestens der Code sieht deutlich lesbarer aus, nur bei meinem timedelta kennt er kein hours.
woran kann das liegen?
Verfasst: Samstag 28. Juni 2008, 09:27
von numerix
wrongspot hat geschrieben:Bestens der Code sieht deutlich lesbarer aus, nur bei meinem timedelta kennt er kein hours.
woran kann das liegen?

Liegt am Fehler in meinem Code:
Muss natürlich "delta.days" heißen, nicht "delta.hours" ...
Verfasst: Samstag 28. Juni 2008, 10:12
von wrongspot
so klappts, prima und besten Dank
Verfasst: Samstag 28. Juni 2008, 20:12
von BlackJack
Ich habe keinen Punkt vergessen, sondern vergessen zu sagen, dass über Allem natürlich ein ``from __future__ import division`` steht.
