aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-100/mohammad-anwar/perl/ch-1.pl6
1 files changed, 4 insertions, 2 deletions
diff --git a/challenge-100/mohammad-anwar/perl/ch-1.pl b/challenge-100/mohammad-anwar/perl/ch-1.pl
index d05904c908..f9a3b88de9 100644
--- a/challenge-100/mohammad-anwar/perl/ch-1.pl
+++ b/challenge-100/mohammad-anwar/perl/ch-1.pl
@@ -8,6 +8,8 @@ use Test::More;
foreach (['20:20', '08:20pm'],
['22:05', '10:05pm'],
['05:00', '05:00am'],
+ ['12:00', '12:00pm'],
+ ['00:01', '12:01am'],
['11:55', '11:55am']) {
is(t($_->[0]), $_->[1]);
is(t($_->[1]), $_->[0]);
@@ -19,7 +21,7 @@ sub t {
return
sprintf("%02d:%02d%s",
($_[0] =~ /(\d+)?\:(\d+)\s?([ap]m)$/i)
- ?((uc($3) eq 'PM')?($1+12,$2,''):($1,$2,''))
- :(($_[0] =~ /(\d+)?\:(\d+)/) and (($1>12)?($1-12,$2,'pm'):($1,$2,'am')))
+ ?((uc($3) eq 'PM')?(($1==12)?($1,$2,''):($1+12,$2,'')):(($1==12)?($1-12,$2,''):($1,$2,'')))
+ :(($_[0] =~ /(\d+)?\:(\d+)/) and (($1 eq '00')?('12',$2,'am'):(($1==12)?('12',$2,'pm'):(($1>12)?($1-12,$2,'pm'):($1,$2,'am')))))
);
}