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

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

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

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

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

День недели = (день месяца + код месяца + код года) % 7

Если день месяца всегда известен, то код месяца придётся просто запомнить, а код года — вычислить. % — это оператор остатка при делении.

В результате вы получите цифру, которая будет соответствовать определённому дню недели. Но обо всём по порядку.

1. Запомните код месяца

Каждому месяцу присвоена цифра от 0 до 6. Для обычных годов это значение будет неизменным. А для високосного есть исключения: в январе и феврале от исходной цифры нужно отнять единицу.

МесяцКод месяца для обычного годаКод месяца для високосного года
Январь10
Февраль43
Март44
Апрель00
Май22
Июнь55
Июль00
Август33
Сентябрь66
Октябрь11
Ноябрь44
Декабрь66

Чтобы запоминать подобные нелогичные данные, проще всего прибегать к ассоциациям.

К слову, чтобы определить, с каким годом вы имеете дело, нужно разделить его на 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‑го мы обновили текст.

Обложка: Оля Ёгидэ / Лайфхакер
Если нашли ошибку, выделите текст и нажмите Ctrl + Enter

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

Читать полную версию
Айдар Султанбек
Поставь календарикиПонедельник правильноМинус один кокшетау правильноПонедельник, 22 ноября 2010 г. Правильно
Виктор Т.
Ой как по мне проще две секунды потратить и посмотреть календарь. Но зато если календарь резко из всего мира пропадет, эта статья будет полезной..
Володя Волков
Индекс дня как вычислить?
Norik Arzumanyan
Всё гораздо проще,если запомнить лишь день начала года и последную цифру года... 202(4)- 01.01.24г. Пн высокосный год,оканчивается Вт-(2) 366/7=52(+2),а остальные четные месяцы своего дня (4)Чт !!!Запомнить легче...04.04-Чт,06.06-Чт,>>>10.10-Чт ,12.12-Чт...Всё легко с 01.01,24(Пн) рассчитат все дни за минуту !!!
Читать все комментарии