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
Zahl in Uhrzeit umwandeln
@erdmulch: Nicht ohne zu wissen wie Du mit Zeit rechnest und was die Zahl da bedeuten soll.
@erdmulch: Das 'Uhr' deutet eher auf eine Uhrzeit hin‽ Dafür würde ich ja immer erst einmal das `datetime`-Modul versuchen.
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.
Ohne das du uns mehr dazu erzaehlst kannst du das nicht. Und fuer's ein bisschen selbst schlau machen: datetime Modul, dort besonders timedelta.
- StefanLawl
- User
- Beiträge: 92
- Registriert: Donnerstag 7. Juni 2012, 20:23
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)
Man sagt uns wir sollen der Idee gedenken und nicht des Mannes. Denn ein Mensch kann versagen. Er kann gefangen werden. Er kann getötet und vergessen werden. Aber 400 Jahre später kann eine Idee immer noch die Welt verändern.
-V
-V
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
Hallo
Karo
Natürlich nicht - obwohl es ihm hier mehrmals empfohlen wurdeHast du dir das datetime-modul ueberhaupt mal angeschaut?
Karo
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.erdmulch hat geschrieben:Ok ich hab 7.50Uhr und addiere nun 25min dann soll nicht 7.75Uhr erscheinen sondern 8.15Uhr
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).
Code: Alles auswählen
7.223423 % 1
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))
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
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
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
Gibt aber sicherlich bessere Lösungen der Experten hier, soll nur ein kleiner Denkansatz sein
erstmal Danke für die schnelle antwort.
bei mir kommt leider das raus:
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
@erdmulch: Dann Zerlege den Ausdruck mal in Teilausdrücke und schau Dir die jeweiligen Teilergebnisse an. Dann kommst Du darauf wo der Fehler ist.
- framp
- User
- Beiträge: 52
- Registriert: Samstag 9. Oktober 2010, 22:16
- Wohnort: bei Stuttgart
- Kontaktdaten:
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.erdmulch hat geschrieben:...Allerdings kommen da solche zahlen heraus: "7.67"...
Integer-Division in Python 2.x.
Code: Alles auswählen
>>> 3 / 5
0
>>> 3 / 5.0
0.6