aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2019-06-21 07:42:37 +0100
committerGitHub <noreply@github.com>2019-06-21 07:42:37 +0100
commite60228226e7596276db3c14940cb7234b80c9d8a (patch)
tree6ce9bf067a607312adb8c7095990fb340e99d216
parent5bb4faf363779d3f1b56602544cdead9f5d3d16a (diff)
parenta1d7450b8acacee18eb9816ba3002073755c5914 (diff)
downloadperlweeklychallenge-club-e60228226e7596276db3c14940cb7234b80c9d8a.tar.gz
perlweeklychallenge-club-e60228226e7596276db3c14940cb7234b80c9d8a.tar.bz2
perlweeklychallenge-club-e60228226e7596276db3c14940cb7234b80c9d8a.zip
Merge pull request #282 from jaldhar/challenge-013
Challenge 13 by Jaldhar H. Vyas: BUG FIXES
-rwxr-xr-xchallenge-013/jaldhar-h-vyas/perl5/ch-1.pl7
-rwxr-xr-xchallenge-013/jaldhar-h-vyas/perl6/ch-1.p69
2 files changed, 11 insertions, 5 deletions
diff --git a/challenge-013/jaldhar-h-vyas/perl5/ch-1.pl b/challenge-013/jaldhar-h-vyas/perl5/ch-1.pl
index e0555ede34..e7c96fd031 100755
--- a/challenge-013/jaldhar-h-vyas/perl5/ch-1.pl
+++ b/challenge-013/jaldhar-h-vyas/perl5/ch-1.pl
@@ -16,8 +16,10 @@ Usage:
sub elapsedLeapDays {
my ($year) = @_;
- $year -= 1752; # We want 1-based years here.
- return int($year / 4) - int($year / 100) + int($year / 400);
+ # Subtractions because we want 1-based years here.
+ return int(($year - 1753) / 4)
+ - int(($year - 1701) / 100) # exclude centennial years >= 1800
+ + int(($year - 1601) / 400); # include quadricentennial years >= 2000
}
sub isLeap {
@@ -55,5 +57,6 @@ my @offset = (2, 3, 4, 5, 6, 0, 1);
my $lastFriday = $lastDay - $offset[($newYearDay + $lastDay) % 7];
my $day = $lastFriday - (($month > 0) ? $lastDays[$month - 1] : -1);
+
say join q{/}, ($year, $month + 1, $day);
}
diff --git a/challenge-013/jaldhar-h-vyas/perl6/ch-1.p6 b/challenge-013/jaldhar-h-vyas/perl6/ch-1.p6
index fe00df931d..cdda6cae63 100755
--- a/challenge-013/jaldhar-h-vyas/perl6/ch-1.p6
+++ b/challenge-013/jaldhar-h-vyas/perl6/ch-1.p6
@@ -1,13 +1,15 @@
#!/usr/bin/perl6
sub elapsedLeapDays(Int $year) {
- my $yr = $year - 1752; # We want 1-based years here.
- return $yr div 4 - $yr div 100 + $yr div 400;
+ # Subtractions because we want 1-based years here.
+ return (($year - 1753) div 4)
+ - (($year - 1701) div 100) # exclude centennial years >= 1800
+ + (($year - 1601) div 400); # include quadricentennial years >= 2000
}
sub isLeap(Int $year) {
# years divisible by 100 are not leap years unless they are divisble by 400.
- return ($year %% 4 && (!$year %% 100 || $year %% 400));
+ return ($year %% 4 && (!($year %% 100) || $year %% 400));
}
# BUG: Is only accurate for years per the Gregorian calendar. Great Britain
@@ -36,6 +38,7 @@ multi sub MAIN(
my $lastFriday = $lastDay - @offset[($newYearDay + $lastDay) % 7];
my $day = $lastFriday - (($month > 0) ?? @lastDays[$month - 1] !! -1);
+
($year, $month + 1, $day).join('/').say;
}
}