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

Полина Кошкаделик

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

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

Gena96/shutterstock.com

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

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

Пояснения

Код месяца

Коды месяца и года — это, пожалуй, самое трудное в формуле.

Код месяца нужно просто запомнить.

  • 1 — январь, октябрь;
  • 2 — май;
  • 3 — август;
  • 4 — февраль, март, ноябрь;
  • 5 — июнь;
  • 6 — декабрь, сентябрь;
  • 0 — апрель, июль.

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

Код года

Код года в XXI веке рассчитывается по формуле:

код года = (6 + последние две цифры года + последние две цифры года / 4) % 7

Оператор «/» означает неполное частное, то есть целую часть результата деления.

  • 2015 год: (6 + 15 + 15 / 4) % 7 = (6 + 15 + 3) % 7 = 25 % 7 = 4;
  • 2016 год: (6 + 16 + 16 / 4) % 7 = (6 + 16 + 4) % 7 = 26 % 7 = 5;
  • 2017 год: (6 + 17 + 17 / 4) % 7 = (6 + 17 + 4) % 7 = 27 % 7 = 6;
  • 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 и так далее.

% 7

Здесь просто: % — оператор остатка при делении.

Расшифровка результата

Старт отсчёта — выходные, то есть: 0 — суббота, 1 — воскресенье и так далее.

Примеры расчёта

  • 25 июля 2016 года: (25 + 0 + 5) % 7 = 30 % 7 = 2 — понедельник;
  • 8 августа 2017 года: (8 + 3 + 6) % 7 = 17 % 7 = 3 — вторник;
  • 5 января 2127 года:
    • (4 + 27 + 27 / 4) % 7 = (4 + 27 + 3) % 7 = 34 % 7 = 6 — код года;
    • (5 + 1 + 6) % 7 = 10 % 7 = 5 — четверг.

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

UPD. К сожалению, эта формула не совсем верно работает для високосного года. До 29 февраля включительно к формуле придётся прибавить ещё единицу, чтобы получить верный день. Спасибо читателям, что обнаружили ошибку.

How to Become a Human Calendar
Timur Evgajukov
2016-02-19 09:08:32
Проще в календарь посмотреть, хотя формула интересная.
Алексей Пономарь
2016-02-19 09:45:03
А это не для простоты, а для тренировки мозга.
Никита Балобанов
2016-02-19 09:49:57
Или я не правильно считаю, или сегодня суббота: 19.02.2016: (19 + 4 + 5) % 7 = 28 % 7 = 0
Илья Ильин
2016-02-19 10:13:11
Для високосного года не работает
Lev Voronov
2016-02-19 10:48:18
Может быть проще запомнить какой сегодня день недели?
bob4ohok
2016-02-19 11:04:15
Paul
2016-02-19 11:11:02
25%7 = 4!!! счетоводы, блин... 25%7 = 7х3 + 4 = 21 + 4
dhgh fghdfgh
2016-02-19 11:20:29
лайкнул
Nikita Bokovoy
2016-02-19 11:31:48
Но и 6+15+3≠25
Настя Русакова
2016-02-19 13:34:08
Закручено. Овчинка выделки не стоит. Чтобы тренировать мозг, не обязательно его ломать.
Paul
2016-02-19 13:41:38
в целом да :D но мне в глаза бросилось именно "оператор остатка при делении" короче копирасты, такие копирасты... смешно, что они даже не проверили арифметику после сделанного замечания ;))) тупо 3 исправили на 4... хоте по всей строчке получается что надо было 25 на 24 править :)
Андрей Нежданов
2016-02-19 16:12:33
Здравствуйте. В свое время занимался по программе развития памяти, концентрации внимания. По словам автора программы, есть несколько методик вычисления дня недели по дате. Вот одна из них: "Вот последовательность вычислений. 1. Каждому месяцу присваивается свой индекс. Эти индексы необходимо запомнить. Январю соответствует индекс 6. Февралю соответствует индекс 2. Марту со­ответствует индекс 2, апрелю - 5, маю - 0, июню соответствует индекс 3. Июлю соответствует индекс 5. Августу соответствует индекс 1. Сентябрю соответствует ин­декс 4. Октябрю соответствует индекс 6. Ноябрю соответствует индекс 2. И декабрю соответствует ин­декс 4. 2. Затем рассчитывается годовой индекс. Две последние цифры года делятся на 12, затем остаток этого деления делится на 4. Полученные цифры – результат деления на 12, остаток этого деления и результат деления на 4 – складываются. Остаток от деления на 4 не учитывается. Например, 1993 год. Берется число 93. Это число де­лится на 12, получается 7 (12х7=84) и 9 (93-84) в остатке. Остаток – 9 - делится на 4. Получается 2 и 1 в остатке, но 1 не учитывается. Три полученных числа складываются. 7+9+2=18. Индекс года – 18. Для годов, начинающихся с "одна тысяча девятьсот..." прибавляется еще один. 4. Индекс года, индекс месяца и число складываются. 5. Полученное число делится на 7. Остаток от деления и есть день недели. 6. Еще есть дополнительное правило для високосных годов, которые можно уз­нать по тому, что две последние цифры года без остатка делятся на 4. Если исход­ная дата относится к январю или декабрю високосного года, тогда из итогового числа необходимо отнять 1. Год 1900 не был високосным, год 2000 был високос­ным.   Пример. 11 декабря 1993. Индекс года уже считали – 18. Индекс месяца – 4. Число – 11. Складываем и получаем 33. Делим на 7. Получаем 4 и 5 в остатке. К остатку 5 прибавляем 1 за 19... и получаем 6, то есть день – суббота."
Polinchik Koshkadelik
2016-02-19 16:17:58
Каюсь, арифметическую ошибку сделала. Что ещё раз подтверждает, что подобные задачки полезны. Спасибо за замечание.
Polinchik Koshkadelik
2016-02-19 16:18:16
А что не так с этим оператором?
Polinchik Koshkadelik
2016-02-19 16:19:17
Добавили правку. Спасибо.
Николай Николаев
2016-02-19 19:33:16
если вы день недели запомнить не можете, то о каком запоминании формул идет речь??
Дмитрий Мишин
2016-02-19 22:54:55
С детства интересовался этим вопросом. Однажды наткнулся на учебник по хронологии. Отталкиваясь от системы, которая в нем была описана, пришел к формуле, которая оказалось универсальной для любого года, в т.ч. високосного (и для любого века). Индекс года = (год * 5 / 4) %7 Проще посчитать на калькуляторе: год * 1.25 %7 Второй вариант. Индекс года = год (2 последних знака) / 4 + 1 + год (2 последних знака) Индекс месяца: январь - 5 (4 - для високосного года) февраль - 1 (0 - для високосного года) март - 1 апрель - 4 май - 6 июнь - 2 июль - 4 август - 0 сентябрь - 3 октябрь - 5 ноябрь - 1 декабрь - 3 День недели = (индекс года + индекс месяца + индекс дня) %7 Пример: 19.02.2016 Индекс года = 2016*1.25 %7 = 0 или Индекс года = 16/4 + 1 + 16 %7 = 0 Индекс месяца = 0 Индекс дня = 5 День недели (19.02.2016) = 5
Света Молодежникова
2016-02-22 10:23:04
Ой... Это Вам Совсем заняться не чем??? Календарь есть на каждом компе- и там можно пролистать и вперед и назад...
Далер Джабаров
2016-02-22 11:46:30
Лучше буду смотреть как всегда в телефоне 🚺🚺
Амадей Базылбеков
2016-02-22 13:56:22
Это не лайфхак. Это лайфлок какой-то.
Максим Микитело
2016-02-22 19:30:50
не усложняйте и так столь запутанную ежедневными гиго-инфо-потоками жизнь🛅
Максим Микитело
2016-02-22 19:32:17
100%
Максим Микитело
2016-02-22 19:33:26
лайфхУк скорее )))
M_Messiah
2016-02-26 14:11:16
Кому лень заучивать формулы - можно другие числа позапоминать и пользоваться алгоритмом Судного дня. Всё равно это всё как-то слишком заумно для того, чтобы быть удобным.
Марат Рифарович
2016-03-02 21:57:18
Я не смог правильно определить для 29 февраля 1984. (29+ 4 + (84+21)/7)/7 +1= 6 это пятница. А на самом деле среда Помогите пожалуйста
Андрей Ватралик
2016-05-25 17:50:47
А что значит 25%7? Что вообще значит %?