Сегодня на работе понадобился этот код. В гугле нашел только для дельфи. Используя 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;
}