Определяем день недели
Для вычисления дня недели удобно использовать формулу Целлера (Zeller’s congruence):
weekday = (d + ((m + 1) * 26) / 10 + y + (y / 4) + (c / 4) - 2 * c) mod 7
Где:
- d — число месяца (1‑31);
- m — номер месяца (март = 1, апрель = 2, …, декабрь = 12);
- y — полный год (например, 1946);
- c — столетие (для 1946 года c = 19).
Подставляем данные для 16 июня 1946 года:
- d = 16;
- m = 6 (июнь);
- y = 1946;
- c = 19.
Вычисления:
weekday = (16 + ((6 + 1) * 26) / 10 + 1946 + (1946 / 4) + (19 / 4) - 2 * 19) mod 7
= (16 + 156 + 1946 + 486 + 4 - 38) mod 7
= 2559 mod 7
= 5
В этой версии 0 = воскресенье, 1 = понедельник, …, 6 = суббота. Полученное значение 5 соответствует воскресенью.
Итак, 16 июня 1946 года был воскресенье.