Расчёт дня недели по дате в уме — это не жизненно важный навык в век технологий. Однако это умение может послужить неплохим упражнением для тренировки памяти и наверняка понравится тем, кто любит проводить операции с цифрами.
Для определения дня недели по дате нужно использовать формулу:
День недели = (день месяца + код месяца + код года) % 7
Если день месяца всегда известен, то код месяца придётся просто запомнить, а код года — вычислить. % — это оператор остатка при делении.
В результате вы получите цифру, которая будет соответствовать определённому дню недели. Но обо всём по порядку.
1. Запомните код месяца
Каждому месяцу присвоена цифра от 0 до 6. Для обычных годов это значение будет неизменным. А для високосного есть исключения: в январе и феврале от исходной цифры нужно отнять единицу.
| Месяц | Код месяца для обычного года | Код месяца для високосного года |
|---|---|---|
| Январь | 1 | 0 |
| Февраль | 4 | 3 |
| Март | 4 | 4 |
| Апрель | 0 | 0 |
| Май | 2 | 2 |
| Июнь | 5 | 5 |
| Июль | 0 | 0 |
| Август | 3 | 3 |
| Сентябрь | 6 | 6 |
| Октябрь | 1 | 1 |
| Ноябрь | 4 | 4 |
| Декабрь | 6 | 6 |
Чтобы запоминать подобные нелогичные данные, проще всего прибегать к ассоциациям.
К слову, чтобы определить, с каким годом вы имеете дело, нужно разделить его на 4: если в результате получилось число с остатком, год считается обычным, а если без — високосным. Но есть исключения — годы, оканчивающиеся на 00 (начало века), не являются високосными: например, 1700‑й, 1800‑й, 1900‑й, 2100‑й. При этом каждый четвёртый из такого ряда всё же будет високосным: 400‑й, 800‑й, 1200‑й, 1600‑й, 2000‑й и так далее.
2. Вычислите код года
Код года в XXI веке рассчитывается по формуле:
Код года = (6 + последние две цифры года + последние две цифры года / 4) % 7
Оператор «/» означает неполное частное, то есть целую часть результата деления. Вот несколько примеров вычислений:
- 2023 год: (6 + 23 + 23 / 4) % 7 = (6 + 23 + 5) % 7 = 34 % 7 = 6;
- 2024 год: (6 + 24 + 24 / 4) % 7 = (6 + 24 + 6) % 7 = 36 % 7 = 1;
- 2025 год: (6 + 25 + 25 / 4) % 7 = (6 + 25 + 6) % 7 = 37 % 7 = 2;
- 2026 год: (6 + 26 + 26 / 4) % 7 = (6 + 26 + 6) % 7 = 38 % 7 = 3.
Если вы захотите узнать день недели для даты другого века, придётся учитывать ещё значения века (6, 4, 2, 0). Вместо 6 в начале формулы для ближайших столетий будут следующие значения:
- 16хх — 6;
- 17хх — 4;
- 18хх — 2;
- 19хх — 0;
- 20хх — 6;
- 21хх — 4 и так далее.
3. Определите день недели
Внесите все данные в исходную формулу и проведите вычисления, а затем соотнесите полученную цифру с днём недели.
| 0 | Суббота |
| 1 | Воскресенье |
| 2 | Понедельник |
| 3 | Вторник |
| 4 | Среда |
| 5 | Четверг |
| 6 | Пятница |
Приведём несколько примеров расчёта.
- 9 августа 2023 года: (9 + 3 + 6) % 7 = 18 % 7 = 4 — среда.
- 5 марта 2024 года: (5 + 4 + 1) % 7 = 10 % 7 = 3 — вторник.
К слову, 2024 год — високосный, поэтому для определения дня недели даты в январе или феврале нужно уменьшить привычный код месяца на единицу:
- 29 февраля 2024 года: (29 + 3 + 1) % 7 = 33 % 7 = 5 — четверг.
Также не забывайте учитывать столетие, на которое приходится дата, и в вычислении кода года используйте соответствующую цифру.
Например, вот расчёт дня недели для 5 января 2127 года:
- (4 + 27 + 27 / 4) % 7 = (4 + 27 + 6) % 7 = 37 % 7 = 2 — код года;
- (5 + 1 + 2) % 7 = 8 % 7 = 1 — воскресенье.
Этот материал впервые был опубликован в феврале 2016 года. В марте 2024‑го мы обновили текст.