hhvm中的复活节日期功能

时间:2015-08-05 09:04:23

标签: php hhvm

我发现hhvm不支持easter_date()函数。

http://docs.hhvm.com/manual/en/function.easter-date.php

有另一种选择吗?我需要使用此功能或同等功能,我也想使用HHVM。

由于

1 个答案:

答案 0 :(得分:5)

您可以在easter_date函数后面实现算法:

if (!function_exists('easter_date')) {
    function easter_date($year) {
        /*
            G is the Golden Number-1
            H is 23-Epact (modulo 30)
            I is the number of days from 21 March to the Paschal full moon
            J is the weekday for the Paschal full moon (0=Sunday,
              1=Monday, etc.)
            L is the number of days from 21 March to the Sunday on or before
              the Paschal full moon (a number between -6 and 28)
        */


         $G = $year % 19;
         $C = (int)($year / 100);
         $H = (int)($C - (int)($C / 4) - (int)((8*$C+13) / 25) + 19*$G + 15) % 30;
         $I = (int)$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;
         $m = 3 + (int)(($L + 40) / 44);
         $d = $L + 28 - 31 * ((int)($m / 4));
         $y = $year;
         $E = mktime(0,0,0, $m, $d, $y);

         return $E;
    }
}

这是PHP implementationGauss algorithm