§ 23. Календарная формула И. Я. Голуба для дат нашей эры
При выводе формулы примем следующие обозначения: К — календарное число месяца; М — коэффициент месяца; J — полный номер года н. э.; Д — порядковый номер года в столетии; Г' — сдвиг дней недели по годам; Г — коэффициент года; В — коэффициент века; С — число полных прошедших столетий; [] — целая часть частного от деления (неполное частное); | | — остаток от деления, причем если делимое меньше делителя, остаток равен делимому; d — порядковый номер дня недели (0 — воскресенье, вс; 1 — понедельник, пн; 2 — вторник, вт; 3 — среда, ср; 4 — четверг, чт; 5 — пятница, пт; 6 — суббота, сб).
День недели календарной даты определяется как остаток от деления суммы чисел К, М, Г и В на 7:
d = |(K+ M + Г+В) / 7 | (1)
Сделаем предположение, что 1 января 1 г. п. э. был понедельник (= 1). Тогда для дат января первого года день недели будет определяться по формуле
d = |К / 7 |.
Так как в январе 31 день, то день недели в феврале первого года определится по формуле
d = |(К + (31–28)) / 7 | = |(K + 3) / 7 |.
Здесь 28 — ближайшее к 31 число, кратное семи, которое мы вычитаем для упрощения вычислений.
Так как в феврале первого года 28 дней, то день недели в марте определяется так же, как и в феврале. В марте 31 день, поэтому для апреля получим формулу
d = |(К + 3 + (31–28)) / 7 | = |(K + 6) / 7 |.
Аналогично получим формулы для остальных месяцев. В этих формулах числа, прибавляемые к календарному числу К, суть коэффициенты месяцев М, которые мы свели в табл. 9.
Таким образом, день недели для первого года н. э. будет определяться по формуле
d = |(K + M) / 7 |. (2)
Объединив повторяющиеся в табл. 9 значения М для разных месяцев, получим табл. 10.
Так как в простом году 52 недели и один день (365 = 52×7 + 1), то для второго года н. э. календарная формула примет вид
d = |(K + M + 1) / 7 |.
а для третьего
d = |(К + М + 2) / 7 |.
Следующий год (четвертый) — високосный; в нем 366 дней (за счет увеличения числа дней в феврале: 29 вместо 28). Поэтому для 4 г. н. э. календарная формула принимает вид для января и февраля
d = |(K = M + 3) / 7 |.
а для месяцев с марта по декабрь
d = |(K = M + 4) / 7 |.
В табл. 11 приведены коэффициенты М для високосных (вис.) и невисокосных — простых (пр.) лет. Так как сдвиг дней недели по годам Г' в четырехлетиях 1–4, 5–8, 9–12 и т. д. происходит одинаково, составим таблиц значений Г' для J от 1 до 60 лет (табл. 12). Мы видим, что в каждом следующем четырехлетии значение сдвига Г' «увеличивается» на 5. Это позволяет выразить его для високосных годов (Jвис) в виде формулы
Г' = |(5(Jвис:4) — 1) / 7)|
а для простых (Jnp) в виде формулы
Г' = |(5 (Jвис: 4) — 1 + (Jпр — Jвис)) / 7 |,
где Jвс — ближайший меньший високосный год [53], а так как
Jвис: 4 = [Jпр: 4],
(3)
то общей формулой для Г' для простых и високосных годов будет
Г' =|(J + [J: 4] — 1) / 7 |. (3)
Упростим формулу (3), убрав в ней «—1». Чтобы сумма М + Г в формуле (1) осталась неизменной, уменьшим на единицу значения коэффициентов М в табл. 11 (при этом 0 считается равным 7). Новые значения коэффициентов М приведены в табл. 13, а формула (3) примет вид
Г' = |(J + [J: 4]) / 7 |.
(4)
В формуле (4) полный порядковый номер года J, выражающийся для нашего времени четырехзначными числами, усложняет вычисления. Если обозначить число тысяч буквой а, число сотен — буквой Ь, число десятков — буквой с и число единиц — буквой f, то номер года J можно записать в виде
J= 1000а + 100b + 10с + f
и тогда
[J: 4] = 250а + 25b + [(10с + f): 4],
а
J + [J: 4] = 100a + 100b + 10c + f + 250a + 25b + [(10c + f): 4] = 1250а+ 125b + 10c + f + [(10c + f): 4].
Так как
|(1250a + 125b) / 7 | = |(7×170a + 60a + 7×17b + 6b) / 7 | = |6(10a + b) / 7 |.
то
(J + [J: 4]) / 7 = 10c + f + |(10с + f): 4 | + 6 (10а + Ь) / 7.
Если же учесть, что 10а + b = С — это число полных прошедших столетий (например, для 1986 г. С = 19 = 10×1 + 9), а 10с + f = Д — порядковый номер года в столетии, то формула (4) примет вид
Г' = |(Д + [Д: 4]) / 7 | + |6c / 7 |. (5)
Значения второго слагаемого с течением веков циклически повторяются (см. табл. 14); это коэффициент века В. Первое же слагаемое будет коэффициентом года Г,
Г' = |(Д + [Д: 4]) / 7 |. (6)
Следует учитывать, что порядковый номер Д года J в столетии имеет значения от 1 до 100, и поэтому для всех вековых лет, например 1800, 1900, 2000 гг. и т. д., Д = 100. Для I в. (годы 1–100) число полных прошедших столетий С = 0, для II в. (годы 101–200) С = 1 и т. д.
В табл. 14 приведены значения коэффициента века В (по старому стилю) для н. э.; из нее следует, что повторяемость юлианского. календаря происходит через 700 лет.
В начале изложения мы условно приняли, что первый день нашей эры (1 января 1 года первого века) был понедельником. Установим теперь значения коэффициентов М, которые дадут возможность правильно определять дни недели. Для этого используем точную дату какого-либо известного события.
Например, что 9 января 1905 г. было воскресенье («Кровавое воскресенье»). Для этой даты d = 0, К = 9, Г = |(5 + [5: 4]) / 7 | = 6, а В = 2. Подставляя эти данные в формулу (1), получим 0 = | (9 = M + 6 + 2) / 7 |, откуда М = — |17 / 7 | = —3. (Если для коэффициента М получается отрицательное значение, то его следует заменить положительным, прибавляя ближайшее большее число, кратное 7. В нашем случае —3 + 7 = 4.) Коэффициенты остальных месяцев можно установить исходя из сравнения с табл. 13. Вообще же их можно вычислить, взяв табель-календарь любого года. Окончательные значения М приведены в табл. 15. Теперь можно определить, каким днем недели было 1 января 1 г. н. э. Для этой легендарной даты К = 1, М = 4, Г = |(1 + [1: 4] / 7 | = 1 и В = 0, следовательно, d = |(1+ 4 + 1 + 0) / 7 | = 6 — суббота.
В новом стиле все вековые годы, кроме тех, число столетий в номере которых делится на 4 (например, 1600, 2000, 24 000 гг. и т. д.), невисокосные. Поэтому коэффициенты века В для этих годов будут другими.
Для определения значений поправок к коэффициенту века В для нового стиля следует учитывать, что при реформе юлианского календаря было принято следующую после четверга 4 октября 1582 г. дату считать пятницей 15 октября.
При этих условиях для 15 октября 1582 г. (С = 15) получаем d = 5, К =15, М = 4 и Г = |(82 + [82: 4]) / 7 | = 4.
Подставляя эти значения в формулу (1), получим 5 = |(15 + 4 + 4 +В) / 7 |, откуда В = |–18/7 | = |–14/7 | = 3.
Для юлианского календаря коэффициент века B = |(6C + P) / 7 |, а для григорианского к нему надо найти поправку Р, определяемую из соотношения
B = |(6c +P) / 7 |.
Так как в этих вычислениях применяется правило остатков, то формула преобразуется к виду
P = |(B + 6С) / 7 |.
В табл. 16 приведены эти поправки Р и коэффициенты века В для нового стиля с XVI по XXIII вв. Как видно из таблицы, коэффициенты В имеют всего четыре значения 3, 2, 0 и 5, которые циклически повторяются через 400 лет.
С введением григорианского календаря появились особые простые вековые годы 1700, 1800, 1900; для которых коэффициент года Г, определяемый по формуле (6), необходимо уменьшать на единицу, т. е. для этих лет
Г = |(100+ [100:4])/7 | = 5. (7)
Что касается вековых лет, число сотен которых кратно четырем, например, 1600, 2000 и т. д., то для нового стиля они остаются високосными, и коэффициент года для них определяется по общему правилу:
Г = |(100 + [100:4]/7 | = 6.
Итак, порядковый номер d дня недели любой календарной даты задается формулой (1) (см. с. 102). Значение коэффициента месяца М берется из табл. 15, коэффициент года Г вычисляется по формуле (6) или (7), а значение коэффициента века В берется для старого стиля из табл. 14, а для нового из табл. 16. Напомним еще раз, что если сумма К + М + Г + В меньше семи, то остаток от деления на семь равен самой сумме. То же правило действует при делении на четыре.