diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2019-06-21 07:42:37 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-06-21 07:42:37 +0100 |
| commit | e60228226e7596276db3c14940cb7234b80c9d8a (patch) | |
| tree | 6ce9bf067a607312adb8c7095990fb340e99d216 | |
| parent | 5bb4faf363779d3f1b56602544cdead9f5d3d16a (diff) | |
| parent | a1d7450b8acacee18eb9816ba3002073755c5914 (diff) | |
| download | perlweeklychallenge-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-x | challenge-013/jaldhar-h-vyas/perl5/ch-1.pl | 7 | ||||
| -rwxr-xr-x | challenge-013/jaldhar-h-vyas/perl6/ch-1.p6 | 9 |
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; } } |
