Реализации алгоритмов/Алгоритм пасхалии: различия между версиями
→К переименованию: Использован шаблон. |
м Ivan Shmakov переименовал страницу Примеры реализации алгоритма пасхалии в Реализации алгоритмов/Алгоритм пасхалии: Согласно [[Викиучебн… |
(нет различий)
|
Версия от 10:02, 4 июля 2014
Программная реализация
- Perl
- Rich Bowen’s модуль Date::Easter доступен на сайте CPAN .[1]
- Excel
=DOLLAR(("4/"&A1)/7+MOD(19*MOD(A1,19)-7,30)*14%,)*7-6
- Предполагается, что ячейка A1 содержит год.[2] Формула вычисляет дату католической Пасхи и дает верный результат для 1900—2203 годов.
- Python
def IanTaylorEasterJscr(year):
a = year % 19
b = year >> 2
c = b // 25 + 1
d = (c * 3) >> 2
e = ((a * 19) - ((c * 8 + 5) // 25) + d + 15) % 30
e += (29578 - a - e * 32) >> 10
e -= ((year % 7) + b - d + e + 2) % 7
d = e >> 5
day = e - d * 31
month = d + 3
return year, month, day
- C++
class Date
{
public:
int day;
int month;
int year;
};
// возвращает дату григорианского календаря
// по книге Jean Meeus Astronomical Algorithms
Date CatholicEaster( int year )
{
Date easterDate;
int a = year % 19;
int b = year / 100;
int c = year % 100;
int d = b / 4;
int e = b % 4;
int f = (b + 8) / 25;
int g = (b - f + 1) / 3;
int h = (19 * a + b - d - g + 15) % 30;
int i = c / 4;
int k = c % 4;
int l = (32 + 2 * e + 2 * i - h - k) % 7;
int m = (a + 11 * h + 22 * l) / 451;
int month = (h + l - 7 * m + 114) / 31;
int day = ((h + l - 7 * m + 114) % 31) + 1;
easterDate.day = day;
easterDate.month = month;
easterDate.year = year;
return easterDate;
}
// возвращает дату юлианского календаря
// по книге Jean Meeus Astronomical Algorithms
Date OrthodoxEaster( int year )
{
Date easterDate;
int a = year % 4;
int b = year % 7;
int c = year % 19;
int d = (19 * c + 15) % 30;
int e = (2 * a + 4 * b - d + 34) % 7;
int month = (d + e + 114) / 31;
int day = ((d + e + 114) % 31) + 1;
easterDate.day = day;
easterDate.month = month;
easterDate.year = year;
return easterDate;
}
Примечания
- ↑ Date::Easter. CPAN. Архивировано из первоисточника 4 апреля 2013.
- ↑ Walkenbach, John Calculating Easter Архивировано из первоисточника 4 апреля 2013.