Как определить день недели по дате, не заглядывая в календарь
Чтобы без помощи календаря определить день недели для любой даты, не обязательно быть гением или ясновидящим. Достаточно запомнить пару формул. Заодно это упражнение может стать неплохой тренировкой для ума и памяти.
Для определения дня недели по дате нужно использовать формулу:
день недели = (день + код месяца + код года) % 7
Пояснения
Код месяца
Коды месяца и года — это, пожалуй, самое трудное в формуле.
Код месяца нужно просто запомнить.
- 1 — январь, октябрь;
- 2 — май;
- 3 — август;
- 4 — февраль, март, ноябрь;
- 5 — июнь;
- 6 — декабрь, сентябрь;
- 0 — апрель, июль.
Чтобы запоминать подобные нелогичные данные, проще всего прибегать к ассоциациям.
Код года
Код года в XXI веке рассчитывается по формуле:
код года = (6 + последние две цифры года + последние две цифры года / 4) % 7
Оператор «/» означает неполное частное, то есть целую часть результата деления.
- 2015 год: (6 + 15 + 15 / 4) % 7 = (6 + 15 + 3) % 7 = 24 % 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 февраля включительно к формуле придётся прибавить ещё единицу, чтобы получить верный день. Спасибо читателям, что обнаружили ошибку.
ЖизньДата и время
Определение дня недели по дате
Вот простенький калькуляторчик для определения дня недели по дате.
Может пригодиться.
Определение дня недели по дате
Дата
Век
День недели
Ссылка скопирована в буфер обмена
Похожие калькуляторы
- • Дата плюс/минус число недель
- • Число недель между двумя датами
- • Количество дней недели между двумя датами
- • Количество часов и минут между двумя днями недели
- • Дата и интервал
- • Раздел: Дата и время ( 40 калькуляторов )
дата Дата и время день недели
PLANETCALC, Определение дня недели по дате
Timur2020-11-03 14:19:27
Комментарии
Ваше сообщение
Сообщать о комментариях
Калькулятор — день недели по дате
Данный сервис позволит выяснить в какой день недели Вы родились.
Определить какой день недели был, когда случилось какое-либо историческое событие.
Или просто покажет названия дней недели по любым указанным датам.
Укажите дату:
День:
Месяц:
Год:
РАССЧИТАТЬ
- Каталог Калькуляторов
- Кредитные
- Финансовые
- Конвертеры валют
- Генераторы
Калькулятор дня недели по дате
Дата:
Калькулятор дней недели поможет найти день недели по указанной дате (день, месяц, год). Чтобы рассчитать введите дату, к примеру свой день рождения и нажмите кнопку рассчитать. В ответ калькулятор сделает расчет и ответит какой день недели был в указанный день.
Похожие калькуляторы:
- Калькулятор дат между датами
- Калькулятор возраста по дате рождения
- Дата римскими цифрами
- Перевод в римские цифры
- Средний возраст сотрудников
- Калькулятор високосных годов
- Прибавить дни к дате
- Контакты
Изменить язык:
oncalc.ru 2014-2023
Когда под рукой нет календаря, для того чтобы определить, какой сегодня день недели, можно воспользоваться следующим алгоритмом:
1. Обозначим число, месяц и год соответственно d, m и y.
2. Если m ≤ 2 (т.е. месяц январь или февраль), то год уменьшим на 1, а число увеличим на 3:
y:= y–1;
d:= d+3;
3. Теперь номер дня недели (w) вычисляется по следующей формуле:
w:= 1 + [d + y + y/4 – y/100 + y/400 + (31m+10)/12] mod 7;
(все операции деления — целочисленные, т.е. берется целая часть частного; mod — операция получения остатка от деления).
Результатом будет целое число в диапазоне от 1 до 7, соответствующее дням недели от воскресенья до субботы (1 — понедельник, 2 — вторник, 3 — среда, 4 — четверг, 5 — пятница, 6 — суббота, 7 — воскресенье).
Данный алгоритм получен модификацией широко известного алгоритма вычсиления дня недели.
Преимущества модифицированного алгоритма:
- не требует использования вспомогательных переменных;
- удобен в языках программирования, использующих передачу параметров по значению;
- дает результат, соответствующий русской традиции нумерации дней недели, начиная с понедельника.
Алгоритм работает в пределах применимости григорианского календаря.
Примеры:
1. Текущая дата: 27.09.2009
d = 27;
m = 9;
y = 2009;
Поскольку m > 2, сразу переходим к п.3
w = 1 + [27 + 2009 + 2009/4 – 2009/100 + 2009/400 + (31*9+10)/12] mod 7 =
= 1 + [27 + 2009 + 502 – 20 + 5 + 24] mod 7 = 1 + 6 = 7 — воскресенье.
2. Текущая дата: 31.01.1968
d = 31;
m = 1;
y = 1968;
Поскольку m ≤ 2, введем коррекцию:
y = 1967;
d = 34;
Теперь вычисляем:
w = 1 + [34 + 1967 + 1967/4 – 1967/100 + 1967/400 + (31*1+10)/12] mod 7 =
= 1 + [34 + 1967 + 491 – 19 + 4 + 3] mod 7 = 1 + 2= 3 — среда.
Ссылки:
- Алгоритм вычисления дня недели — Википедия.
Дополнительно на Геноне:
- Как по дате определить день недели?
- Что такое григорианский календарь?
- Почему в разные годы одна и та же дата приходится на разные дни недели?
- Где найти астрономический календарь?
- Как самому расcчитать дату Пасхи?