aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Proctor <simon.proctor@zoopla.co.uk>2021-02-15 09:37:36 +0000
committerSimon Proctor <simon.proctor@zoopla.co.uk>2021-02-15 09:37:36 +0000
commit5e70fcf6e681215a1d1716353061c3b53cfe108d (patch)
tree5e43a9af668d6f815334c13831790bbf5ecb9588
parent216a60a4cbd47838e42b055bbc7365d348ee8b8a (diff)
downloadperlweeklychallenge-club-5e70fcf6e681215a1d1716353061c3b53cfe108d.tar.gz
perlweeklychallenge-club-5e70fcf6e681215a1d1716353061c3b53cfe108d.tar.bz2
perlweeklychallenge-club-5e70fcf6e681215a1d1716353061c3b53cfe108d.zip
Challenge 1... bit more that 1 line
-rw-r--r--challenge-100/simon-proctor/raku/ch-1.raku40
1 files changed, 40 insertions, 0 deletions
diff --git a/challenge-100/simon-proctor/raku/ch-1.raku b/challenge-100/simon-proctor/raku/ch-1.raku
new file mode 100644
index 0000000000..9baf46416d
--- /dev/null
+++ b/challenge-100/simon-proctor/raku/ch-1.raku
@@ -0,0 +1,40 @@
+#!/usr/bin/env raku
+
+#| Given a time string in am/pm convert to 24hr clock
+multi sub MAIN( $t where $t ~~ /^ \d\d ":" \d\d " "? "am"/) {
+ given $t {
+ when /^ "12:" (\d\d) " "? "am" $/ {
+ (S/^ "12:" (\d\d) " "? "am" $/00:$0/).say
+ }
+ default {
+ (S/^ (\d\d ":" \d\d) " "? "am" $/$0/).say
+ }
+ }
+}
+
+multi sub MAIN( $t where $t ~~ /^ \d\d ":" \d\d " "? "pm"/) is hidden-from-USAGE {
+ given $t {
+ when /^ "12:" (\d\d) " "? "pm" $/ {
+ (S/^ "12:" (\d\d) " "? "pm" $/12:$0/).say
+ }
+ default {
+ (S/^ (\d\d) ":" (\d\d) " "? "pm" $/{$0+12}:$1/ given $t).say
+ }
+ }
+}
+
+#| Given a time in 24hr clock convert to am/pm
+multi sub MAIN( $t ) {
+ given $t {
+ when /^ "00:" (\d\d) $/ {
+ (S/^ "00:" (\d\d) $/12:{$1}am/).say
+ }
+ when /^ "12:" (\d\d) $/ {
+ (S/^ "12:" (\d\d) $/12:{$1}pm/).say
+ }
+ default {
+ ($_ ~~ /^ (\d\d) ":" (\d\d) $/);
+ sprintf( "%02d:%02d%s", $0 > 12 ?? $0-12 !! $0, $1, $0 > 12 ?? "pm" !! "am").say;
+ }
+ }
+}