Как определить день недели по дате, не заглядывая в календарь
Придётся освоить пару формул.
Расчёт дня недели по дате в уме — это не жизненно важный навык в век технологий. Однако это умение может послужить неплохим упражнением для тренировки памяти и наверняка понравится тем, кто любит проводить операции с цифрами.
Для определения дня недели по дате нужно использовать формулу:
День недели = (день месяца + код месяца + код года) % 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
Оператор «/» означает неполное частное, то есть целую часть результата деления. Вот несколько примеров вычислений:
Если вы захотите узнать день недели для даты другого века, придётся учитывать ещё значения века (6, 4, 2, 0). Вместо 6 в начале формулы для ближайших столетий будут следующие значения:
3. Определите день недели
Внесите все данные в исходную формулу и проведите вычисления, а затем соотнесите полученную цифру с днём недели.
0 | Суббота |
1 | Воскресенье |
2 | Понедельник |
3 | Вторник |
4 | Среда |
5 | Четверг |
6 | Пятница |
Приведём несколько примеров расчёта.
К слову, 2024 год — високосный, поэтому для определения дня недели даты в январе или феврале нужно уменьшить привычный код месяца на единицу:
Также не забывайте учитывать столетие, на которое приходится дата, и в вычислении кода года используйте соответствующую цифру.
Например, вот расчёт дня недели для 5 января 2127 года: