Bash- / Perl-Frage: Sekunden -> Stunden:Minuten:Sekunden
Hallo Liste! Kennt jemand eine Möglichkeit eine Anzahl an Sekunden in Stunden:Minuten:Sekunden umzurechnen? Z.B. habe ich 12387 Sekunden, möchte nun aber den Wert in STD:MIN:SEK haben (möglichst in bash!) Ich habe das irgendwo mal in Perl gesehen, aber wie das funtioniert hat weis ich nicht mehr (war wohl eine Datums-Funktion). Vieleicht gibts ja irgend ein passendes programm dafür? Vielen Dank für die Tips -- Matthias Hentges [www.hentges.net] "Thats what sucks about windows, you can't say that you rooted some one. Saying "I ADMINISTRATORED YOU!" just doesnt sound cool."
Hi,
Hallo Liste!
Kennt jemand eine Möglichkeit eine Anzahl an Sekunden in Stunden:Minuten:Sekunden umzurechnen?
Z.B. habe ich 12387 Sekunden, möchte nun aber den Wert in STD:MIN:SEK haben (möglichst in bash!)
Ich habe das irgendwo mal in Perl gesehen, aber wie das funtioniert hat weis ich nicht mehr (war wohl eine Datums-Funktion).
Vieleicht gibts ja irgend ein passendes programm dafür?
Vielen Dank für die Tips
also die lokale Zeit wird ja auch in Sekunden zurückgegeben. Ich rechne das dann immer so um: use POSIX;($sek, $min, $std, $x, $x, $x, $x, $x) = localtime(time); if ($min < 10) { $min = '0'.$min; } if ($std < 10) { $std = '0'.$std; } $zeit = $std . ':'. $min. ''; $datum = strftime("%d.%m.%Y", localtime(time)); Dann hast du zum einen das aktuelle Datum und die Uhrzeit in STD:MIN Vielleicht hilft dir das ja weiter. Gruß, Stephan
Hallo! Am Mit, 2002-07-17 um 17.44 schrieb Stephan Pienitz:
Hi,
Hallo Liste!
Kennt jemand eine Möglichkeit eine Anzahl an Sekunden in Stunden:Minuten:Sekunden umzurechnen?
Z.B. habe ich 12387 Sekunden, möchte nun aber den Wert in STD:MIN:SEK haben (möglichst in bash!)
Ich habe das irgendwo mal in Perl gesehen, aber wie das funtioniert hat weis ich nicht mehr (war wohl eine Datums-Funktion).
Vieleicht gibts ja irgend ein passendes programm dafür?
Vielen Dank für die Tips
also die lokale Zeit wird ja auch in Sekunden zurückgegeben. Ich rechne das dann immer so um:
use POSIX;($sek, $min, $std, $x, $x, $x, $x, $x) = localtime(time); if ($min < 10) { $min = '0'.$min; } if ($std < 10) { $std = '0'.$std; } $zeit = $std . ':'. $min. ''; $datum = strftime("%d.%m.%Y", localtime(time));
Dann hast du zum einen das aktuelle Datum und die Uhrzeit in STD:MIN
Danke für den Tip! Diese Perl-Funktionen machen das was ich gesucht habe. Nur noch eine Frage habe ich: Wenn ich folgendes aufrufe: use POSIX;($sek, $min, $std, $x, $x, $x, $x, $x) = localtime(18000); dann ist $std immer um 1 zu hoch. 18000 Sekunden sind 5 Stunden, $std gibt aber 6 zurück. Auch wenn ich z.B. 129 Sekunden umrechne so ist $std=1 ($min und $sek stimmen). Wollte nur wissen ob das so normal ist :) -- Matthias Hentges [www.hentges.net] "Thats what sucks about windows, you can't say that you rooted some one. Saying "I ADMINISTRATORED YOU!" just doesnt sound cool."
Hi,
Danke für den Tip! Diese Perl-Funktionen machen das was ich gesucht habe.
Nur noch eine Frage habe ich:
Wenn ich folgendes aufrufe:
use POSIX;($sek, $min, $std, $x, $x, $x, $x, $x) = localtime(18000);
dann ist $std immer um 1 zu hoch.
18000 Sekunden sind 5 Stunden, $std gibt aber 6 zurück. Auch wenn ich z.B. 129 Sekunden umrechne so ist $std=1 ($min und $sek stimmen).
Wollte nur wissen ob das so normal ist :)
also, wenn ich das bei mir benutze, dann gibt er alles korrekt aus. Ansonsten einfach $zeit = $teit - 1; machen. Ist zwar nicht ganz "rein" aber was solls :) MFG Stephan
Hallo Matthias, Matthias Hentges schrieb am 17.07.2002 (17:39):
Kennt jemand eine Möglichkeit eine Anzahl an Sekunden in Stunden:Minuten:Sekunden umzurechnen?
Z.B. habe ich 12387 Sekunden, möchte nun aber den Wert in STD:MIN:SEK haben (möglichst in bash!)
date +"%H:%M:%S" -d"1970/01/01 + 12387 seconds" Gruß, Antje -- Calculating in binary code is as easy as 01,10,11.
Hi Matthias, Matthias Hentges wrote:
Hallo Liste!
Kennt jemand eine Möglichkeit eine Anzahl an Sekunden in Stunden:Minuten:Sekunden umzurechnen?
Z.B. habe ich 12387 Sekunden, möchte nun aber den Wert in STD:MIN:SEK haben (möglichst in bash!)
Ich habe das irgendwo mal in Perl gesehen, aber wie das funtioniert hat weis ich nicht mehr (war wohl eine Datums-Funktion).
Vieleicht gibts ja irgend ein passendes programm dafür?
dafür gibts weniger aufwändiges Werkzeug als perl, zum besseren Verständnis mal in der Langform aufgeschrieben: echo 12387 | \ awk '{printf("%d:%d:%d",$0/(60*60),$0%(60*60)/60,$0%(60*60)%60)}' MfG. Falk
On Mit, 17 Jul 2002 at 17:39 (+0200), Matthias Hentges wrote:
Hallo Liste!
Kennt jemand eine Möglichkeit eine Anzahl an Sekunden in Stunden:Minuten:Sekunden umzurechnen?
Z.B. habe ich 12387 Sekunden, möchte nun aber den Wert in STD:MIN:SEK haben (möglichst in bash!)
zeit=12387 std=`expr $zeit / 3600` zeit=`expr $zeit - $std \* 3600` min=`expr $zeit / 60` sek=`expr $zeit - $min \* 60` Das macht sich den Umstand zu Nutze, dass expr nur im Integer-Bereich rechnet. Jan
Vielen Dank für die ganzen Tips! Mein kleines Pogramm funktioniert inzwischen dank euch! -- Matthias Hentges [www.hentges.net] "Thats what sucks about windows, you can't say that you rooted some one. Saying "I ADMINISTRATORED YOU!" just doesnt sound cool."
participants (5)
-
Antje M. Bendrich
-
Falk Sauer
-
Jan.Trippler@t-online.de
-
Matthias Hentges
-
Stephan Pienitz