Расчет Православной Пасхалии
Определение дат Православной Пасхи и Двунадесятых преходящих праздников по формулам Гаусса
Алгоритм вычисления даты Православной Пасхи.
(mod - от операции деления берется отстаток)
Year - номер года
a = Year mod 19
b = Year mod 4
c = Year mod 7
d = (19 * a + 15) mod 30
e = (2 * b + 4 * c + 6 * d + 6) mod 7,
Если (d + e) > 10, то Пасха будет (d + e - 9) апреля ст. стиля, в
противном случае - (22 + d + e) марта ст. стиля.
Дата Пасхи может варьироваться от 22 марта до 25 апреля (датировка по ст. стилю).
При переводе даты со старого стиля (Юлианского) в новый (Григорианский) необходимо к полученной дате
прибавить 13, а с 1 марта 2100 года - 14.
К сожалению в предыдущей версии скрипта я допустил досадную ошибку (а с точки зрения программиста
непростительную) в операциях вычисления дат. Прошу у всех извинений.
Можно получить месяц и день православной Пасхи, дополнив вышеприведенный алгоритм Гаусса
следующим кодом:
z = d + e
month = (z + 25) div 35 + 3
day = z + 22 - 31 * (month div 4). Комментарий: код получен эмпирическим путем, так же вычисляется день и месяц католической Пасхи в
алгоритме Оудина.
У Куликова вообще-то ошибка (d + e) > 10, т.к. в случае
d + e = 10 получается дата 22 + 10 = 32.03.
На самом деле необходимы следующие изменения (d + e) >= 10 или
(d + e) > 9.
d + e = 09 => 22 + 09 = 31.03
d + e = 10 => 22 + 10 = 32.03 (???)
d + e = 11 => 11 - 09 = 02.04