В Perl, какой самый простой способ превратить X секунд в формат ЧЧ: ММ: СС? - PullRequest
2 голосов
/ 02 марта 2011

В Perl, как проще всего сказать 600 seconds (десять минут в записи N секунды) в 00:10:00 (десять минут в записи HH:MM:SS)?

Ответы [ 2 ]

7 голосов
/ 02 марта 2011

Использование gmtime :

$seconds = 600;
printf ("%02d:%02d:%02d\n",(gmtime($seconds))[2,1,0]);

отпечатков:

00:10:00
2 голосов
/ 03 марта 2011

Зависит от вашего определения «самый простой».Мне нравится разумно ориентированный на будущее код, о котором мне больше никогда не придется думать, и он будет выглядеть так:

use strict;
use warnings;
use 5.10.0;

use DateTime::Duration;
use DateTime::Format::Duration;

sub duration_to_hms {
    my ($duration) = @_;

    my $formatter = DateTime::Format::Duration->new(
        pattern     => "%H:%M:%S",
        normalize   => 1,
    );

    return $formatter->format_duration($duration);
}

my $duration = DateTime::Duration->new(seconds => 600);

say duration_to_hms($duration);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...