Посчитать день недели
Определить день недели по дате можно двумя способами: воспользоваться онлайн-калькулятором для мгновенного результата или освоить простую формулу для самостоятельного расчёта. Оба метода пригодятся – калькулятор для скорости, формула – чтобы блеснуть знаниями или проверить результат.
Калькулятор дня недели
Введите дату – и калькулятор мгновенно покажет день недели. Инструмент работает для любых дат, включая прошлые и будущие годы.
Формула Зеллера – классический метод
Формула Зеллера позволяет вычислить день недели для любой даты григорианского календаря. Это метод, который используют в программировании и календарных системах.
Алгоритм расчёта
Определите месяц и год: если месяц январь или февраль, считайте их как 13-й и 14-й месяцы предыдущего года.
Разделите год: вычислите
K– год текущего столетия (последние две цифры), иJ– век (все цифры до столетия).Подставьте в формулу:
h = (q + ⌊13(m+1)/5⌋ + K + ⌊K/4⌋ + ⌊J/4⌋ − 2J) mod 7
Где:
q– день месяцаm– номер месяца (3=март, 4=апрель, …, 14=февраль)K– год века (две последние цифры года)J– век (год без двух последних цифр)⌊ ⌋– целая часть числа
- Расшифруйте результат: полученное число
hозначает:
- 0 – суббота
- 1 – воскресенье
- 2 – понедельник
- 3 – вторник
- 4 – среда
- 5 – четверг
- 6 – пятница
Пример: 1 января 2000 года
- Дата: 1 января 2000 года
- Так как январь – месяц 13 предыдущего года:
q = 1,m = 13,K = 99,J = 19
Подставляем:
h = (1 + ⌊13(13+1)/5⌋ + 99 + ⌊99/4⌋ + ⌊19/4⌋ − 2·19) mod 7
h = (1 + ⌊182/5⌋ + 99 + 24 + 4 − 38) mod 7
h = (1 + 36 + 99 + 24 + 4 − 38) mod 7
h = 126 mod 7 = 0
Результат: 0 = суббота. Проверяем – 1 января 2000 года действительно суббота.
Упрощённый метод: код месяца
Для упрощённого расчёта в уме используйте «код месяца» – постоянное число, которое прибавляется к дню месяца.
Коды месяцев для 2026 года
| Месяц | Код |
|---|---|
| Январь | 0 |
| Февраль | 3 |
| Март | 3 |
| Апрель | 6 |
| Май | 1 |
| Июнь | 4 |
| Июль | 6 |
| Август | 2 |
| Сентябрь | 5 |
| Октябрь | 0 |
| Ноябрь | 3 |
| Декабрь | 5 |
Как считать
- Прибавьте к номеру дня месяца код этого месяца.
- Добавьте две последние цифры года.
- Разделите полученное число на 7 и возьмите остаток.
- Найдите день недели по остатку: 0 – суббота, 1 – воскресенье, 2 – понедельник и так далее до 6 – пятница.
Пример: 15 июля 2026 года
- День: 15
- Код июля: 6
- Год (две цифры): 26
Сумма: 15 + 6 + 26 = 47 47 mod 7 = 5 (остаток) 5 = четверг. 15 июля 2026 года – четверг.
Этот метод работает для XXI века. Для других столетий добавляется поправка на век.
Частые случаи
Какой день недели был 1 января 2000 года?
Суббота. Это одна из самых известных дат – «проблема 2000 года» и начало нового тысячелетия. Многие календарные программы именно поэтому используют эту дату для тестирования.
День недели текущей даты
Чтобы узнать день недели для сегодняшней даты, проще всего использовать калькулятор выше. Для самопроверки: текущая дата {{QUOTE:current_date}} – {{QUOTE:current_weekday}}.
День недели для дат прошлого века
Формула Зеллера работает для любого года григорианского календаря (с 1582 года). Для дат до реформы календаря результат может отличаться из-за юлианского календаря, который использовался ранее.