Алгоритм вычисления дня Пасхи (православной) на ActionScript для Flash

ПасхаСегодня на работе понадобился этот код. В гугле нашел только для дельфи. Используя http://ru.wikipedia.org/wiki/Пасха написал этот алгоритм на ActionScript. Перевести его на PHP, C++, C# не составить труда думаю никому… Так что если кому надо — юзайте. Лицензия — все абсолютно free и без гарантий ;)

function makeEaste(year)
{
    a = (19*(year%19) + 15) % 30;
    b = ((2*(year%4) + 4*(year%7) + 6*a + 6) % 7);
    if(a + b > 10)
        p = new Date(year, 3, a + b - 9, 0, 0, 0, 0);
    else
        p = new Date(year, 2, 22 + a + b, 0, 0, 0, 0);
    p.setDate(p.getDate()+13);
    return p;
}

Так как на 10й день после пасхи идет Радоница, получить ее дату можно так: p = makeEaste(year); p.setDate(p.getDate()+9);

З.Ы. Я не AS программер, так что если какие глупые ошибки в коде — не серчайте.

Update. Код на JavaScript:

function makeEaste(year)
{
    var a = (19*(year%19) + 15) % 30;
    var b = ((2*(year%4) + 4*(year%7) + 6*a + 6) % 7);
    if(a + b > 10)
        var p = new Date(year, 3, a + b - 9, 0, 0, 0, 0);
    else
        p = new Date(year, 2, 22 + a + b, 0, 0, 0, 0);
    p.setDate(p.getDate()+13);
    return p;
}

Код на PHP:

function makeEaste($year)
{
    $a = (19*($year%19) + 15) % 30;
    $b = ((2*($year%4) + 4*($year%7) + 6*$a + 6) % 7);
    $p = new DateTime();
    if($a + $b > 10)
        $p->setDate($year, 4, $a + $b - 9);
    else
        $p->setDate($year, 3, 22 + $a + b);
    $p->modify("+13 day");
    return $p;
}

Об авторе Валера Леонтьев

Программист PHP/MySQL.

Запись опубликована в рубрике ActionScript, IT, PHP, Web, Все рубрики с метками . Добавьте в закладки постоянную ссылку.