diff options
| author | Ruben Westerberg <drclaw@mac.com> | 2019-12-09 05:44:22 +1000 |
|---|---|---|
| committer | Ruben Westerberg <drclaw@mac.com> | 2019-12-09 05:44:22 +1000 |
| commit | 2c66aafd8a87e902f8fba9ba41585d04f03a6a41 (patch) | |
| tree | 7ea963bc9caa3e4f22e478d6e20d3feda4ad66b6 /challenge-037 | |
| parent | ce3d8ea2ebac25519004e8da853efcb2b9a41aef (diff) | |
| download | perlweeklychallenge-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/README | 6 | ||||
| -rwxr-xr-x | challenge-037/ruben-westerberg/perl/ch-2.pl | 2 | ||||
| -rwxr-xr-x | challenge-037/ruben-westerberg/raku/ch-1.p6 | 11 | ||||
| -rwxr-xr-x | challenge-037/ruben-westerberg/raku/ch-2.p6 | 29 |
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; +} |
