aboutsummaryrefslogtreecommitdiff
path: root/challenge-037
diff options
context:
space:
mode:
authorRuben Westerberg <drclaw@mac.com>2019-12-09 05:44:22 +1000
committerRuben Westerberg <drclaw@mac.com>2019-12-09 05:44:22 +1000
commit2c66aafd8a87e902f8fba9ba41585d04f03a6a41 (patch)
tree7ea963bc9caa3e4f22e478d6e20d3feda4ad66b6 /challenge-037
parentce3d8ea2ebac25519004e8da853efcb2b9a41aef (diff)
downloadperlweeklychallenge-club-2c66aafd8a87e902f8fba9ba41585d04f03a6a41.tar.gz
perlweeklychallenge-club-2c66aafd8a87e902f8fba9ba41585d04f03a6a41.tar.bz2
perlweeklychallenge-club-2c66aafd8a87e902f8fba9ba41585d04f03a6a41.zip
Added ch-1.p6 and ch-2.p6
Adjusted output for ch-1.pl
Diffstat (limited to 'challenge-037')
-rw-r--r--challenge-037/ruben-westerberg/README6
-rwxr-xr-xchallenge-037/ruben-westerberg/perl/ch-2.pl2
-rwxr-xr-xchallenge-037/ruben-westerberg/raku/ch-1.p611
-rwxr-xr-xchallenge-037/ruben-westerberg/raku/ch-2.p629
4 files changed, 44 insertions, 4 deletions
diff --git a/challenge-037/ruben-westerberg/README b/challenge-037/ruben-westerberg/README
index 885021d671..7c64cafc0c 100644
--- a/challenge-037/ruben-westerberg/README
+++ b/challenge-037/ruben-westerberg/README
@@ -2,12 +2,12 @@ Solution by Ruben Westerberg
ch-1.pl and ch-1.p6
===================
-Run the program with one or more VIN numbers as command line arguments. VIN numbers are validated.
-
+Run the program to display the number of weekdays in the months of 2019
ch-2.pl and ch-2.p6
===================
-Run the program to demonstate knapsack problem.
+Run the program to show the amount of daylight duration difference between November and December
+Note for Raku version the HTTP::UserAgent module is required
diff --git a/challenge-037/ruben-westerberg/perl/ch-2.pl b/challenge-037/ruben-westerberg/perl/ch-2.pl
index 89f3e50a66..53a6b86df8 100755
--- a/challenge-037/ruben-westerberg/perl/ch-2.pl
+++ b/challenge-037/ruben-westerberg/perl/ch-2.pl
@@ -17,7 +17,7 @@ my $sign= $delta>=0?"+":"-"; $delta=abs($delta);
my $hours=int($delta / 3600); $delta-=$hours*3600;
my $mins=int ($delta/60); $delta-=$mins*60;
-print "December gained $sign$hours:$mins:$delta compared to November\n";
+print "December gained $sign$hours:$mins:$delta (H:M:S) compared to November\n";
sub extractDaylight {
diff --git a/challenge-037/ruben-westerberg/raku/ch-1.p6 b/challenge-037/ruben-westerberg/raku/ch-1.p6
new file mode 100755
index 0000000000..2ab22286fc
--- /dev/null
+++ b/challenge-037/ruben-westerberg/raku/ch-1.p6
@@ -0,0 +1,11 @@
+#!/usr/bin/env perl6
+my $t=DateTime.new(:2019year);
+my %months;
+my @names= <January February March April May June July August September October November December>;
+while $t.year == 2019 {
+ $t+=Duration.new(60*60*24);;
+ %months{@names[$t.month-1]}++ if $t.day-of-week == any (1..5);
+}
+for @names {
+ put "$_: %months{$_} week days"
+}
diff --git a/challenge-037/ruben-westerberg/raku/ch-2.p6 b/challenge-037/ruben-westerberg/raku/ch-2.p6
new file mode 100755
index 0000000000..cb87affdc5
--- /dev/null
+++ b/challenge-037/ruben-westerberg/raku/ch-2.p6
@@ -0,0 +1,29 @@
+#!/usr/bin/env perl6
+
+use HTTP::UserAgent;
+
+print "Downloading November Data...\n";
+my $res=HTTP::UserAgent.new.get("https://www.timeanddate.com/sun/uk/london?month=11&year=2019");
+my $nov=$res.content;
+
+print "Downloading December Data...\n";
+$res=HTTP::UserAgent.new.get("https://www.timeanddate.com/sun/uk/london?month=12&year=2019");
+my $dec= $res.content;
+
+my $delta=extractDaylight($dec)- extractDaylight($nov);
+my $sign= $delta>=0??"+"!!"-"; $delta=abs($delta);
+my $hours=($delta / 3600).Int; $delta-=$hours*3600;
+my $mins=($delta/60).Int; $delta-=$mins*60;
+
+print "December gained $sign$hours:$mins:$delta (H:M:S) compared to November\n";
+
+sub extractDaylight($text) {
+ my $total =0;
+ my @matches= $text~~ m:g/\<td\sclass\=\"c\str\ssep\-l\"[.*?]\>(.*?)\<\/td\>/;
+ #my @matches= $text~~ m:g/\<td\sclass\=\"c\str\ssep\-1\"[.*?]\>(.*?)\<\/td\>/;
+ for @matches {
+ my ($h,$m,$s)=split ":",$_[0].Str;
+ $total+=$h*3600+$m*60+$s;
+ }
+ $total;
+}