## ## We assume $in_sec is a positive integer number of seconds. ## Convert this to a 0-trimmed string of ddd:hh:mm:ss, ## or "days:hours:minutes:seconds". ## my ($in_sec, $out_str, $out_m, $out_d, $out_h, $out_s); $in_sec=pop @ARGV; $hold_sec = $in_sec; $out_d = int($in_sec / (3600*24)); $in_sec = $in_sec % (3600*24); $out_h = int ($in_sec / 3600); $in_sec = $in_sec % 3600; $out_m = int ($in_sec / 60); $in_sec = $in_sec % 60; $out_s = $in_sec; if ($out_d > 0) { $out_str = sprintf "%u = %u:%0.2u:%0.2u:%0.2u\n", $hold_sec, $out_d, $out_h, $out_m, $out_s; } elsif ($out_h > 0) { $out_str = sprintf "%u = %0.2u:%0.2u:%0.2u\n", $hold_sec, $out_h, $out_m, $out_s; } elsif ($out_m > 0) { $out_str = sprintf "%u = %0.2u:%0.2u\n", $hold_sec, $out_m, $out_s; } else { $out_str = sprintf "%u = :%0.2u\n", $hold_sec, $out_s; } print $out_str;