Frage

Jemand hat 20 Stunden 42 Minuten und 16 Sekunden in einer Schicht in Höhe von insgesamt 74.536 Sekunden. Wie erhalte ich die Stunden von Anzahl von Sekunden der Person für diese Verschiebung getan hat?

20 * 60 * 60      =    72000
     42 * 60      =     2520
          16      =       16
                  +    -----
Total             =    74536
____________________________
Total % 60        =  Seconds (16)
Total % ?         =  Minutes (42)
Total % ?         =    Hours (20)

Versuchte 84600 bereits; den Modul senken sich herausstellt, wenn eine Zahl ist, es ist wirklich nicht sehr hilfreich ist, und etwas, das ich zu fangen haben werde sollte jemand melden Sie nur für ein paar Sekunden ...

War es hilfreich?

Lösung

Sie müssen sowohl Modul und Division verwenden:

t = seconds_in_shift;
secs = t % 60;
t /= 60;
mins = t % 60;
t /= 60;
hour = t;

Oder:

secs =  ttime % 60;
mins = (ttime / 60) % 60;
hour =  ttime / 3600;

Eine andere Option verwendet die div() Funktion von Standard C ( <stdlib.h>):

div_t v1 = div(ttime, 60);
div_t v2 = div(v1.quot, 60);

Danach enthält v1.rem die Sekunden; v2.rem enthält die Minuten und v2.quot enthält die Stunden auf der Grundlage der Anzahl der Sekunden ursprünglich in ttime.

Andere Tipps

Auf der Grundlage von Jonathan Antwort, glaube ich, die genaue Antwort auf dieses ...

sein sollte
$total_time = 61000;
$sec = $total_time % 60;
$total_time = ($total_time - $sec) / 60;
$min = $total_time % 60;
$hour = ($total_time - $min) / 60;
echo "$hour hours, $min minutes and $sec seconds";

Aber wenn Ihr Server PHP7 installiert ist, können Sie die intdiv () Funktion. Eine ganze Zahl der Division in der der Rest wird verworfen.

// $hour = ($total_time - $min) / 60; old code but still works
$hour = intdiv($total_time, 60); // PHP7 and above code
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top