Время и датыПрочее

День недели по дате

Узнайте день недели по любой дате: онлайн-калькулятор, формула Зеллера и алгоритм Сакомото. Примеры расчёта и учёт юлианского календаря.

Григорианский календарь. Расчёт выполняется в браузере.
Все калькуляторы раздела «Прочее» (559) →

Как узнать день недели по любой дате

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

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

Формула Зеллера

Вечным календарём называт алгоритм, который работает для любой даты, а не только для одного года. Классический способ ращёта — формула Зеллера для григорианского календаря:

h = (q + floor(13*(m+1)/5) + K + floor(K/4) + floor(J/4) - 2*J) mod 7

Где:

  • q — число месяца;
  • m — номер месяца по схеме: март = 3, апрел = 4, …, декабрь = 12, январь = 13, феврал = 14;
  • Y — год; для января и февраля берётся предыдущий год;
  • K — две последние цифры года Y;
  • J — две первые цифры года Y.

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

0 = суббота, 1 = воскресенье, 2 = понедельник,
3 = вторник, 4 = среда, 5 = четверг, 6 = пятница

Если в формуле получилось отрицательное число, прибавьте 7, пока результат не станет от 0 до 6.

Алгоритм Сакомото

Если вы программируете, удобнее использовать компактный алгоритм Сакомото. Он короче и не требует перенумерации месяцев:

def weekday(year, month, day):
    t = [0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4]
    if month < 3:
        year -= 1
    return (year + year // 4 - year // 100 + year // 400 + t[month - 1] + day) % 7

Здесь // — целочисленное деление. Функция возвращает 0 для воскресенья, 1 для понедельника и так далее до 6 для субботы.

Пример расчёта: 9 мая 1945 года

Проверим формулу Зеллера на известной дате — 9 мая 1945 года:

  • q = 9, m = 5, Y = 1945, K = 45, J = 19;
  • h = 9 + floor(13*6/5) + 45 + floor(45/4) + floor(19/4) - 2*19;
  • h = 9 + 15 + 45 + 11 + 4 - 38 = 46;
  • 46 mod 7 = 4, а 4 по таблице — среда.

Значит, 9 мая 1945 года действительно была среда. Алгоритм Сакомото даст для этой даты 3, что при его нумерации тоже соответствует среде.

Как считать в уме: опорная дата

Для дат текущего года не обязательно держать в голове формулу. Достаточно знать день недели 1 января.

В 2026 году 1 января — четверг. Чтобы узнать день недели любой другой даты:

  1. Посчитайте, сколько дней прошло от 1 января до нужной даты.
  2. Разделите это число на 7 и запомните остаток.
  3. Прибавьте остаток к четвергу.

Например, от 1 января до 1 июня 2026 года проходит 151 день. 151 mod 7 = 4, а четверг плюс 4 дня — понедельник. Значит, 1 июня 2026 года — понедельник.

Григорианский и юлианский кадendar: границы применимости

Формулы выше рассчитаны на григорианский календарь. Он был введён в 1582 году, а Россия перешла на него в 1918-м. Для дат до этого перехода исторические источники часто используют юлианский календарь, поэтому день недели может не совпасть с расчётом по новому стилю.

Если дата записана по старому стилю, сначала переведите её в григорианский календарь: в XX–XXI веках разница составляет 13 дней. Для более ранних периодов разница другая, поэтому уточняйте правила пересчёта отдельно.

Часто задаваемые вопросы

Какой день недели будет 31 декабря 2026 года?
31 декабря 2026 года — четверг. В невисокосном году последний день совпадает с днём недели 1 января, а 2026 год невисокосный. Поэтому достаточно знать, что 1 января 2026 года приходится на четверг.
Почему для историчеких дат результат может быть неверным?
Григорианский календарь введён в 1582 году, а Росия перешла на него в 1918-м. Исторические документы до этого перехода часто датированы по юлианскому календарю, поэтому день недели в них может отличаться от рачёта по новому стилю. Всегда утоняйте, каким календарём ползовался иточник.
Что такое вечный календарь?
Вечный календарь — это алгориty or таблица, которые позволяют определить день недели для любой даты в рамках выбранной календарной системы. Формула Зеллера и алгоритм Сакомото — самые известные примеры таких универсальных методов.
Високосный год влияет на день недели?
Да. Дополнительный день 29 февраля сдвигает дни недели после этой даты на один день по сравнению с обычным годом. Формулы Зеллера и Сакомото учитвают вискокосные годы автоматически, а табличные методы требуют специальных поправок.
Как узнать день недели по дате рождения по старому стилю?
Сначала переведите дату из юлианского календаря в григорианский: в XX–XXI веках разница составляет 13 дней, поэтому к числу месяца нужно прибавить 13. Затем подставьте полученную дату в калькулятор. Если дата уже записана по новому стилю, дополнительный перечёт не нужен.
Почему калькулятор не принимает дату 31 февраля?
31 февраля не существует ни в одном календаре. Калькулятор проверяет реальность даты и учитывает вискокосные годы, поэтом у допускает 29 февраля только в вискокосном году. Это защищает от ошибок при вводе.