Fixing dates
In the input we get dates like this 2010-7-5 but we would like to make sure we have two digits for both days and months: 2010-07-05
#!/usr/bin/perl
use strict;
use warnings;
sub fix_date {
my $str = shift;
$str =~ s/-(\d)\b/-0$1/g;
return $str;
}
my %dates = (
'2010-7-5' => '2010-07-05',
'2010-07-5' => '2010-07-05',
'2010-07-05' => '2010-07-05',
'2010-7-15' => '2010-07-15',
);
use Test::More;
plan tests => scalar keys %dates;
foreach my $in (sort keys %dates) {
my $result = fix_date($in);
is $result, $dates{$in}, $in;
# print " old: $in\n";
# print " new: $result\n";
# print " expected: $dates{$in}\n\n";
}
old: 2010-07-05
new: 2010-07-05
expected: 2010-07-05
old: 2010-07-5
new: 2010-07-05
expected: 2010-07-05
old: 2010-7-15
new: 2010-07-15
expected: 2010-07-15
old: 2010-7-5
new: 2010-07-05
expected: 2010-07-05
1..4
ok 1 - 2010-07-05
ok 2 - 2010-07-5
ok 3 - 2010-7-15
ok 4 - 2010-7-5
date.pl .. ok
All tests successful.
Files=1, Tests=4, 0 wallclock secs ( 0.05 usr + 0.00 sys = 0.05 CPU)
Result: PASS