Seite 1 von 1
Zahl in Uhrzeit umwandeln
Verfasst: Sonntag 10. Juni 2012, 19:31
von erdmulch
Hallo zusammen,
ich mache gerade eine Rechenoperation mit der Zeit.
nun kommt folgendes ergebnis raus: 7.13903233615Uhr
kann mir jemand sagen ob es eine Methode gibt, die das Ergebnis direkt in eine "echte" Uhrzeit umwandelt?
Danke im voraus
Re: Zahl in Uhrzeit umwandeln
Verfasst: Sonntag 10. Juni 2012, 19:35
von BlackJack
@erdmulch: Nicht ohne zu wissen wie Du mit Zeit rechnest und was die Zahl da bedeuten soll.
Re: Zahl in Uhrzeit umwandeln
Verfasst: Sonntag 10. Juni 2012, 19:44
von erdmulch
Im Prinzip müsste es 7Uhr und 6Minuten und ein paar zerquetschte sein

gibt es dafür aber schon ne fertige methode?
Re: Zahl in Uhrzeit umwandeln
Verfasst: Sonntag 10. Juni 2012, 19:46
von BlackJack
@erdmulch: Das 'Uhr' deutet eher auf eine Uhrzeit hin‽ Dafür würde ich ja immer erst einmal das `datetime`-Modul versuchen.
Re: Zahl in Uhrzeit umwandeln
Verfasst: Sonntag 10. Juni 2012, 19:51
von erdmulch
ja schon, aber wie?
ich erhalte als ergebnis 7,1....
wie kann ich das nun in eine Uhrzeit umwandeln?
Re: Zahl in Uhrzeit umwandeln
Verfasst: Sonntag 10. Juni 2012, 19:56
von deets
7.1 Minuten sind keine Uhrzeit. Wenn ich dir erzaehle, dass Usain Bolt 9.8 Sekunden auf 100m gelaufen ist - dann steckt da nicht drin, ob das Vormittags oder Nachmittags oder tief in der Nacht war.
Ohne das du uns mehr dazu erzaehlst kannst du das nicht. Und fuer's ein bisschen selbst schlau machen: datetime Modul, dort besonders timedelta.
Re: Zahl in Uhrzeit umwandeln
Verfasst: Sonntag 10. Juni 2012, 19:58
von StefanLawl
Du müsstest doch eigentlich nur die Kommazahlen in "Zeit" umrechnen, beispielsweise sind 0.5h = 30 Minuten. Falls du das meinst. Eine "Uhrzeit" ist 7.1h aber nicht, außer du meinst "7:06" Uhr (0.1h = 6min)
Re: Zahl in Uhrzeit umwandeln
Verfasst: Sonntag 10. Juni 2012, 20:02
von erdmulch
Ok ich hab 7.50Uhr und addiere nun 25min dann soll nicht 7.75Uhr erscheinen sondern 8.15Uhr
Re: Zahl in Uhrzeit umwandeln
Verfasst: Sonntag 10. Juni 2012, 20:04
von erdmulch
ah, OK am Besten die Komma zahlen mit split ermitteln? oder gibt es da was eleganteres?
Re: Zahl in Uhrzeit umwandeln
Verfasst: Sonntag 10. Juni 2012, 20:06
von deets
Code: Alles auswählen
from datetime import timedelta, datetime
t = datetime(year=2012, month=6, day=10, hour=7, minute=50)
d = timedelta(minutes=25)
print t + d
Hast du dir das datetime-modul ueberhaupt mal angeschaut?
Re: Zahl in Uhrzeit umwandeln
Verfasst: Sonntag 10. Juni 2012, 22:49
von karolus
Hallo
Hast du dir das datetime-modul ueberhaupt mal angeschaut?
Natürlich nicht - obwohl es ihm
hier mehrmals empfohlen wurde
Karo
Re: Zahl in Uhrzeit umwandeln
Verfasst: Montag 11. Juni 2012, 07:27
von Darii
erdmulch hat geschrieben:Ok ich hab 7.50Uhr und addiere nun 25min dann soll nicht 7.75Uhr erscheinen sondern 8.15Uhr
Wenn du nicht durchgängig eine konsistente Nomenklatur verwendest wird das nie was werden. Wie dir schonmal gesagt wurde ist das nicht 7.50 Uhr sondern 7:50 Uhr. Hättest du diese Schreibweise verwendet wäre dir vielleicht auch aufgefallen, dass 7:50 + 0,25 nie im Leben eine sinnvolle Rechenoperation sein kann.
Tipp datetime oder mach dir klar, dass eine Stunde 60 Minuten hat aber eine "Eins" 100 hundertstel (0,01-Einheiten). Den Umrechnungsfaktor erhältst du dann durch Quotientenbildung.
Nachkommastellen erhältst du nicht durch abschneiden sondern durch Restwertbildung (Modulo).
Re: Zahl in Uhrzeit umwandeln
Verfasst: Montag 11. Juni 2012, 07:48
von hendrikS
Du kannst auch alle Zeitoperationen in Sekunden ausführen bzw. Deine Zeiten in Sekunden verwalten und dann zur formatierten Ausgabe die time Funktionen verwenden. Etwa so:
Code: Alles auswählen
import time
print time.ctime(450)[11:19]
#oder
print time.strftime("%H:%M:%S",time.localtime(450))
Re: Zahl in Uhrzeit umwandeln
Verfasst: Dienstag 12. Juni 2012, 19:46
von erdmulch
ich bins nochmal

und zwar will ich den Sonnenauf und Untergang berechnen. Allerdings kommen da solche zahlen heraus: "7.67"
siehe:
http://lexikon.astronomie.info/zeitgleichung/
kann mir jemand sagen wie man sowas in ne "richtige" Uhrzeit umwandelt?
Danke im voraus
Re: Zahl in Uhrzeit umwandeln
Verfasst: Dienstag 12. Juni 2012, 19:59
von heiliga horsd
Code: Alles auswählen
>>> t = "7.67"
>>> s, m = t.split('.')
>>> Zeit = "{0}:{1} Uhr".format(s, round(int(m)*(3/5)))
>>> print(Zeit)
7:40 Uhr
3/5 wäre hier der Umrechnungsfaktor der Dezimalstelle, drauf kommen tut man mit Überlegen, anhand eines kleinen Rechenbeispiels oder per Dreisatz (oder oder oder)
Gibt aber sicherlich bessere Lösungen der Experten hier, soll nur ein kleiner Denkansatz sein

Re: Zahl in Uhrzeit umwandeln
Verfasst: Dienstag 12. Juni 2012, 20:18
von erdmulch
erstmal Danke für die schnelle antwort.
bei mir kommt leider das raus:
Code: Alles auswählen
>>> t = "7.67"
>>> s, m = t.split('.')
>>> Zeit = "{0}:{1} Uhr".format(s, round(int(m)*(3/5)))
>>> print Zeit
7:0.0 Uhr
Re: Zahl in Uhrzeit umwandeln
Verfasst: Dienstag 12. Juni 2012, 20:33
von BlackJack
@erdmulch: Dann Zerlege den Ausdruck mal in Teilausdrücke und schau Dir die jeweiligen Teilergebnisse an. Dann kommst Du darauf wo der Fehler ist.
Re: Zahl in Uhrzeit umwandeln
Verfasst: Dienstag 12. Juni 2012, 22:36
von framp
erdmulch hat geschrieben:...Allerdings kommen da solche zahlen heraus: "7.67"...
Das Problem ist bei Dir, dass Du die dezimale Zeitdarstellung vorliegen hast. D.h., du hast 7 Stunden (Wert vor dem Punkt) und 0.67 Stunden (nach dem Punkt). Da eine Stunde 60 Minuten hat ist also Deine MinutenZeit 60*0.67 = 40.2 Minuten. Wenn Du noch die 0.2 Minuten in Sekunden umrechnest (60*0.2) bekommst Du 12 Sekunden raus. D.h. also, Deine 7.67 sind 7:40:12 in der SexagesimalDarstellung.
Re: Zahl in Uhrzeit umwandeln
Verfasst: Mittwoch 13. Juni 2012, 07:43
von /me
Integer-Division in Python 2.x.