Как определить день недели по дате
Для вычисления дня недели удобно применять формулу Зеллера (Zeller’s congruence):
h = (q + ⌊13·(m+1)/5⌋ + K + ⌊K/4⌋ + ⌊J/4⌋ - 2·J) mod 7
где
- h — номер дня недели (0 = воскресенье, 1 = понедельник, …, 6 = суббота);
- q — число месяца;
- m — номер месяца (март = 3, …, декабрь = 12). Январь и февраль считаются 13‑м и 14‑м месяцами предыдущего года;
- K — год столетия (две последние цифры года);
- J — номер столетия (первые две цифры года).
Пример: 10 апреля 1949 года
Подставляем значения:
- q = 10
- m = 4
- K = 49
- J = 19
h = (10 + ⌊13·(4+1)/5⌋ + 49 + ⌊49/4⌋ + ⌊19/4⌋ - 2·19) mod 7
= (10 + ⌊65/5⌋ + 49 + 12 + 4 - 38) mod 7
= (10 + 13 + 49 + 12 + 4 - 38) mod 7
= 50 mod 7
= 0
Получаем h = 0, что соответствует воскресенью. Таким образом, 10 апреля 1949 года был воскресенье.