Text Formatting and Date Strings
Duration Strings
Convert a fixed minute count into an hour-and-minute label.
duration-strings
Duration text can be built from scalar arithmetic without reading the clock.
Duration Strings
duration_strings.pl
Replay: real traced execution (multi-file project)
use strict;
use warnings;
my $minutes = 90;
my $hours = int($minutes / 60);
my $remaining = $minutes % 60;
my $label = sprintf("%02d:%02d", $hours, $remaining);
print "minutes=$minutes\n";
print "hours=$hours\n";
print "remaining=$remaining\n";
print "label=$label\n";
use strict;
use warnings;
my $minutes = 30;
my $hours = int($minutes / 60);
my $remaining = $minutes % 60;
my $label = sprintf("%02d:%02d", $hours, $remaining);
print "minutes=$minutes\n";
print "hours=$hours\n";
print "remaining=$remaining\n";
print "label=$label\n";
use strict;
use warnings;
my $minutes = 125;
my $hours = int($minutes / 60);
my $remaining = $minutes % 60;
my $label = sprintf("%02d:%02d", $hours, $remaining);
print "minutes=$minutes\n";
print "hours=$hours\n";
print "remaining=$remaining\n";
print "label=$label\n";
$minutes ← 90, $hours ← 1, $remaining ← 30, $label ← 01:30
4my $minutes→ 90 = 90; #@minutes=30, 1255my $hours→ 1 = int($minutes90 / 60);6my $remaining→ 30 = $minutes90 % 60;7my $label→ 01:30 = sprintf("%02d:%02d", $hours1, $remaining30);89print "minutes=$minutes90\n";10print "hours=$hours1\n";11print "remaining=$remaining30\n";12print "label=$label01:30\n";outputminutes=90 hours=1 remaining=30 label=01:30
$minutes ← 30, $hours ← 0, $remaining ← 30, $label ← 00:30
4my $minutes→ 30 = 30;5my $hours→ 0 = int($minutes30 / 60);6my $remaining→ 30 = $minutes30 % 60;7my $label→ 00:30 = sprintf("%02d:%02d", $hours0, $remaining30);89print "minutes=$minutes30\n";10print "hours=$hours0\n";11print "remaining=$remaining30\n";12print "label=$label00:30\n";outputminutes=30 hours=0 remaining=30 label=00:30
$minutes ← 125, $hours ← 2, $remaining ← 5, $label ← 02:05
4my $minutes→ 125 = 125;5my $hours→ 2 = int($minutes125 / 60);6my $remaining→ 5 = $minutes125 % 60;7my $label→ 02:05 = sprintf("%02d:%02d", $hours2, $remaining5);89print "minutes=$minutes125\n";10print "hours=$hours2\n";11print "remaining=$remaining5\n";12print "label=$label02:05\n";outputminutes=125 hours=2 remaining=5 label=02:05