aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Ferrari <fluca1978@gmail.com>2023-02-27 14:01:21 +0100
committerLuca Ferrari <fluca1978@gmail.com>2023-02-27 14:01:21 +0100
commit978a6e83d295db79dfbbbb410bfb7024ee97c962 (patch)
tree735991db6113784da17099a2f50bb4c07ab01744
parent09eef326c170759598ee2d5d35a5aad50be4a11c (diff)
downloadperlweeklychallenge-club-978a6e83d295db79dfbbbb410bfb7024ee97c962.tar.gz
perlweeklychallenge-club-978a6e83d295db79dfbbbb410bfb7024ee97c962.tar.bz2
perlweeklychallenge-club-978a6e83d295db79dfbbbb410bfb7024ee97c962.zip
Task 1 done
-rw-r--r--challenge-206/luca-ferrari/raku/ch-1.p638
1 files changed, 38 insertions, 0 deletions
diff --git a/challenge-206/luca-ferrari/raku/ch-1.p6 b/challenge-206/luca-ferrari/raku/ch-1.p6
new file mode 100644
index 0000000000..e9e31dddec
--- /dev/null
+++ b/challenge-206/luca-ferrari/raku/ch-1.p6
@@ -0,0 +1,38 @@
+#!raku
+
+#
+# Perl Weekly Challenge 206
+# Task 1
+#
+# See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-206/>
+#
+
+sub diff ( $start, $end ) {
+ my ( $start-hours, $start-mins ) = $start.chomp.split( ':' );
+ my ( $end-hours, $end-mins ) = $end.chomp.split( ':' );
+
+ if ( $start-hours == 0 ) {
+ $start-hours = 23;
+ $start-mins += 60;
+ }
+
+ if ( $end-hours == 0 ) {
+ $end-hours = 23;
+ $end-mins += 60;
+ }
+
+ my $diff-hours = abs( $end-hours - $start-hours );
+ my $diff-mins = abs( $end-mins - $start-mins ) % 60;
+
+ return $diff-hours * 60 + $diff-mins;
+
+}
+
+sub MAIN( :$verbose = True, *@times where { @times.grep( * ~~ / ^ \d ** 2 ':' \d ** 2 $ / ).elems == @times.elems } ) {
+
+ my %diffs;
+ %diffs{ diff( $_[ 1 ], $_[ 0 ] ) } = [ $_[0], $_[1] ] for @times.sort.combinations( 2 );
+
+ %diffs.keys.map( *.Int ).min.say;
+ %diffs{ %diffs.keys.map( *.Int ).min }.join( ' - ' ).say if ( $verbose );
+}