Berechnung von Schlafenszeit mit Formel?
Hallo,
ich schreibe gerade ein Programm. Dieses soll die geschlafene Zeit aus 2 Uhrzeiten ausrechnen (--> vergangene Zeit). Im internet habe ich nichts gefunden außer: (a-b)24 was bei mir aber nur Schwachsinn ergibt ( (18-20)24 ist nich 2H)
Also ich suche eine Formel, die mit dem Startpunkt und einem Endpunkt, die vergangene Zeit ausrechnet im 24 H Format und über Nacht.
Hat jemand Ansätze oder gar eine Formel? Ähnliche Projekte oder Tutorials?
Mare
4 Antworten
Welche Sprache verwendest du?
Allgemein verwende dazu nicht die Zeit im normalen Format sondern den Timestamp, bei diesem gilt:
a - b
dann hast du eine Zeitdifferenz die du zB mit mktime in ein lesbares Format bringen kannst.
|a-e|mod24
Müsstest du halt noch umformen, da müssen Dezimalzahlen eingesetzt werden, und es kommen Dezimalzahlen raus. Dazu nimmst du einfach die ganze Zahl, schreibst den gebrochenen Teil als 1/60 und den Rest als 1/3600
Wenn es auch über Nacht funktionieren soll, würde ich das Datum einbeziehen und die vergangene Zeit in Minuten errechnen, oder was immer deine kleinste Einheit sein soll. Dafür das Datum in eine Zahl umrechnen, sodass jeder Folgetag eine Zahl hat, die um 1 größer ist. Für Minuten als kleinste Einheit wäre die Formel dann (d2-d1)*1440+(h2-h1)*60+m2-m1.
Daraus müsste man dann für eine Anzeige im dd:hh:mm-Format die entstandene Zahl mit Rest durch 1440 teilen (für die Tage), den Rest dann wiederum durch 60 (für die Stunden) und der Rest davon wäre dann die dritte Zahl (Minuten). Wie man das programmiert, keine Ahnung. Hängt, glaube ich, von der Programmiersprache ab.
P.S.: Aber PeterKremsners Methode klingt noch besser und direkter.
Haha, erstmal nach PeterKRemsners Methode gegooglet weil ich dachte das wär ein eigen Name bis ich merkte, dass dies sich auf die nächste Antwort bezieht
Die einfachste und zugleich flexibelste methode ist die unix timestamp zu verwenden.