The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Prty::Duration - Rechnen und Konvertieren von Zeiträumen

BASE CLASS

Prty::Object

DESCRIPTION

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

METHODS

Konstruktor

new() - Konstruktor

Synopsis

    $dur = Prty::Duration->new($sec);
    $dur = Prty::Duration->new($str);

Description

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.

Objektmethoden

asSeconds() - Dauer in Sekunden

Synopsis

    $sec = $dur->asSeconds;

Description

Liefere die Zeitdauer in Sekunden - sofern vorhanden, mit Nachkommastellen.

asString() - Dauer als Zeichenkette

Synopsis

    $str = $dur->asString;
    $str = $dur->asString($prec);

Description

Liefere die Zeitdauer als Zeichenkette in der Form DdHhMmS.Xs.

asArray() - Dauer als Array

Synopsis

    @arr | $arr = $dur->asArray;

Description

Liefere die Dauer als Array mit den Komponenten ($days,$hours,$minutes,$seconds).

asFFmpegString() - Dauer als Parameter für ffmpeg-Option -t

Synopsis

    $str = $dur->asFFmpegString;

Description

Liefere Dauer in der Form wie sie ffmpeg bei der Option -t erwartet, also im Format

    H:M:S.XXX

stringToSeconds() - Wandele Zeitdauer-Angabe in Sekunden

Synopsis

    $sec = $this->stringToSeconds($str);

Description

Wandele Zeichenkette zur Bezeichnung einer Zeitdauer in die Anzahl Sekunden.

Example

Zeitdauer-Zeichenkette bestehend aus Tagen, Stunden, Mintuten, Sekunden:

    $sec = Prty::Duration->stringToSeconds('152d5h25m3.457s');
    # 13152303.457

secondsToString() - Wandele Sekunden in Zeitdauer-Zeichenkette

Synopsis

    $str = $this->secondsToString($sec,@opt);

Arguments

$sec

Anzahl Sekunden, ggf. mit Nachkommastellen.

Options

$prec (Default: 0)

Anzahl der Nachkommastellen bei den Sekunden. Ist kein Wert angegeben, wird auf ganze Sekunden gerundet.

$unit (Default: undef)

Liefere String fester Breite ab Einheit $unit.

Description

Wandele Anzahl Sekunden in eine Zeichenkette zur Bezeichnung einer Zeitdauer.

VERSION

1.093

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2016 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.