Как определить день недели по дате, не заглядывая в календарь

Придётся освоить пару формул.

Расчёт дня недели по дате в уме — это не жизненно важный навык в век технологий. Однако это умение может послужить неплохим упражнением для тренировки памяти и наверняка понравится тем, кто любит проводить операции с цифрами.

👌 В телеграм-канале «Лайфхакер» лучшие статьи о том, как сделать жизнь проще.

Для определения дня недели по дате нужно использовать формулу:

День недели = (день месяца + код месяца + код года) % 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 год — високосный, поэтому для определения дня недели даты в январе или феврале нужно уменьшить привычный код месяца на единицу:

Также не забывайте учитывать столетие, на которое приходится дата, и в вычислении кода года используйте соответствующую цифру.

Например, вот расчёт дня недели для 5 января 2127 года:

  • (4 + 27 + 27 / 4) % 7 = (4 + 27 + 6) % 7 = 37 % 7 = 2 — код года;
  • (5 + 1 + 2) % 7 = 8 % 7 = 1 — воскресенье.

Этот материал впервые был опубликован в феврале 2016 года. В марте 2024‑го мы обновили текст.

Это упрощённая версия страницы.

Читать полную версию
Источник статьи: How to Become a Human Calendar
Обложка: Оля Ёгидэ / Лайфхакер
Над текстом работали: Виктория Курачёва, Полина Кошкаделик
Если нашли ошибку, выделите текст и нажмите Ctrl + Enter
Айдар Султанбек
15.08.23 14:10
Поставь все календарики Понедельник, 22 ноября 2010 года
Айдар Султанбек
15.08.23 14:11
Поставь календарики Понедельник правильно Минус один кокшетау правильно Понедельник, 22 ноября 2010 г. Правильно
Виктор Т.
07.03.24 11:47
Ой как по мне проще две секунды потратить и посмотреть календарь. Но зато если календарь резко из всего мира пропадет, эта статья будет полезной..
Володя Волков
03.04.24 19:57
Индекс дня как вычислить?
Читать все комментарии