There is a small error in the PHP version, that pg ported here: <updated, wrong name>.
The line
$H = int($C - ($C / 4) - ((8*$C+13) / 25) + 19*$G + 15) % 30;
Should be:
$H = ($C - int($C / 4) - int((8*$C+13) / 25) + 19*$G + 15) % 30;
The final sub sould look like:
sub easter_date {
my $Year = shift;
my ($G,$C,$H,$I,$J,$L)="0"x6;
$G = $Year % 19;
$C = int($Year / 100);
$H = ($C - int($C / 4) - int((8*$C+13) / 25) + 19*$G + 15) % 30;
$I = $H - int($H / 28)*(1 - int($H / 28)*int(29 / ($H + 1))*(int(21
+- $G) / 11));
$J = ($Year + int($Year/4) + $I + 2 - $C + int($C/4)) % 7;
$L = $I - $J;
my $m = 3 + int(($L + 40) / 44);
my $d = $L + 28 - 31 * (int($m / 4));
my $y = $Year;
return sprintf("%04d-%02d-%02d", $y, $m, $d);
}
This way, I think that it should be ok. What you think greenFox?
|