Quiq::Duration - Rechnen und Konvertieren von Zeiträumen
Quiq::Object
Ein Objekt der Klasse repräsentiert eine Zeitdauer, die intern als numerischer Wert (Sekunden mit Nachkommastellen) gespeichert wird.
Als externe Repäsentation wird die Darstellung
DdHhMmS.Xs
verwendet, wobei
D = Anzahl Tage H = Anzahl Stunden M = Anzahl Minuten S = Anzahl Sekunden X = Bruchteil einer Sekunde
Es gelten folgende Eingenschaften:
führende Anteile bis auf Ss fehlen, wenn sie 0 sind
X fehlt, wenn 0
Ss erscheint immer, auch bei 0 Sekunden
die leere Zeichenkette ('') oder undef entspricht 0 Sekunden
der Sekundenanteil kann Nachkommastellen haben
Bei der Instantiierung kann die Zeitdauer auch in Doppelpunkt-Notation übergeben werden:
D:H:M:S.X
$dur = Quiq::Duration->new($sec); $dur = Quiq::Duration->new($str);
Instantiiere ein Zeitdauer-Objekt und liefere einen Referenz auf dieses Objekt zurück. Die Zeitdauer kann als numerischer Wert $sec oder als Zeichenkette $str angegeben werden. Die Zeichenkette kann auch in Doppelpunkt-Notation (D:H:M:S.X) angegeben sein.
$sec = $dur->asSeconds;
Liefere die Zeitdauer in Sekunden - sofern vorhanden, mit Nachkommastellen.
$str = $dur->asString; $str = $dur->asString($prec);
Liefere die Zeitdauer als Zeichenkette in der Form DdHhMmS.Xs.
$str = $dur->asShortString(@opt);
Größte dargestellte Einheit.
Kleinste dargestellte Einheit.
Bei einer Zeit von 0 Sekunden wird ein Leerstring geliefert. Ist diese Option gesetzt, erfolgt immer eine Ausgabe - mit -minUnit als Einheit.
Anzahl der Sekunden-Nachkommastellen.
Liefere die Zeitdauer als Zeichenkette der Form DdHhMmSs (per Default, siehe Option -maxUnit), wobei alle Anteile, die 0 sind, weggelassen werden, sowohl am Anfang als auch am Ende.
@arr | $arr = $dur->asArray;
Liefere die Dauer als Array mit den Komponenten ($days,$hours,$minutes,$seconds).
$str = $dur->asFFmpegString;
Liefere Dauer in der Form wie sie ffmpeg bei der Option -t erwartet, also im Format
H:M:S.XXX
$sec = $this->stringToSeconds($str);
Wandele Zeichenkette zur Bezeichnung einer Zeitdauer in die Anzahl Sekunden.
Zeitdauer-Zeichenkette bestehend aus Tagen, Stunden, Mintuten, Sekunden:
$sec = Quiq::Duration->stringToSeconds('152d5h25m3.457s'); # 13152303.457
Dasselbe mit Doppelpunkt-Notation:
$sec = Quiq::Duration->stringToSeconds('152:5:25:3.457'); # 13152303.457
$str = $this->secondsToString($sec,@opt);
Anzahl Sekunden, ggf. mit Nachkommastellen.
Anzahl der Nachkommastellen bei den Sekunden. Ist kein Wert angegeben, wird auf ganze Sekunden gerundet.
Liefere String fester Breite ab Einheit $unit.
Wandele Anzahl Sekunden in eine Zeichenkette zur Bezeichnung einer Zeitdauer.
1.144
Frank Seitz, http://fseitz.de/
Copyright (C) 2019 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Quiq, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Quiq
CPAN shell
perl -MCPAN -e shell install Quiq
For more information on module installation, please visit the detailed CPAN module installation guide.