in reply to Re: How do I convert seconds into a readable time?
in thread How do I convert seconds into a readable time?

seconds to #d_HH:MM:SS.ss and back.

sub dhms2s { my $dhms = shift; my @dinfo = split /d_|:/, $dhms; my ($s, $m, $h, $d) = reverse @dinfo; $d ||= 0; $h ||= 0; $m ||= 0; return ( (( $d * 24 + $h ) * 60 + $m ) * 60 + $s ); } my $m = 60; my $h = 60 * $m; my $d = 24 * $h; sub s2dhms { my $secs = shift; my $D = int($secs / $d); $secs = $secs - $D * $d; my $H = int($secs / $h); $secs = $secs - $H * $h; my $M = int($secs / $m); $secs = $secs - $M * $m; my $S = $secs ; my $r; if ($D) { $r .= sprintf "%dd_", $D; } if ( $S == int $S ) { $r .= sprintf "%02d:%02d:%02d", $H, $M, $S; } else { $r .= sprintf "%02d:%02d:%05.2f", $H, $M, $S; } return $r; }