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

Для определения дня недели по дате нужно использовать формулу:
день недели = (день + код месяца + код года) % 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 — четверг.
P.S. В школьные годы на уроках математики учительница мне все уши прожужжала тем, что в жизни у меня не будет под рукой ни калькулятора ни календаря, поэтому я сам должен научиться считаь в уме, помнить сколько дней в каждом месяце и т.д.
В 99-м купил сименс с25. Вот с того самого дня ее и тролю)))
Определение номера недели по дате
Определение номера недели по дате, европейский (российский) или американский стандарты, простая нумерация.
Калькулятор ниже определяет порядковый номер недели в году. Как выяснилось, это не совсем тривиальный вопрос, и есть целых четыре разных способа подсчитать номер недели.
Первый способ:
Стандарт ISO 8601 и соответствующий ему ГОСТ ИСО 8601-2001 «ПРЕДСТАВЛЕНИЕ ДАТ И ВРЕМЕНИ» — официальный способ расчета номера недели в Российской Федерации. По поводу порядкового номера недели считается, что первой неделей года является та неделя, на которую попадает первый четверг нового года, или, что эквивалентно, та неделя, которая содержит число 4 января. То есть, если первое
января выпадает на пятницу, субботу, или воскресенье, то все еще продолжается последняя неделя предыдущего года. Это может приводить к интересным спецэффектам — в году может содержаться 52 или 53 недели, 29, 30, 31 декабря могут относиться к первой неделе следующего года, и наоборот, 1, 2, и 3 января могут относиться к 52 или 53 неделе прошлого года.
Се ля ви, как говорят французы, зато стандарт.
Второй способ:
Условно назовем его «американским». Стандартов на этот счет я не нашел, но общеизвестно, что американцы считают началом недели воскресенье, в отличии от нас, живущих с понедельника. Собственно, способ расчета — первая неделя это та, на которой случилось 1 января, а следующая неделя начинается с ближайшего воскресенья.
Третий способ:
Третий способ я бы назвал «интуитивным» 🙂 Первая неделя это та, на которой случилось 1 января, а следующая неделя начинается с ближайшего понедельника.
Четвертый способ:
«Сквозной». Тут все просто — 1 января начинается первая неделя года, через семь дней, 8 января — вторая неделя года и так далее до конца года.
Как определить день недели по дате – вечный календарь с 1901 по 2096 год
Для того, чтобы узнать день недели конкретного дня, требуется:
- Найти в первой таблице цифру, соответствующую указанному году и месяцу;
- Сложить эту цифру с числом дня;
- Найти во второй таблице получившееся значение и посмотреть, какому дню недели оно соответствует.
Пример: требуется определить, каким днём недели было 22 февраля 2007 года.
- Цифра, соответствующая февралю (ф) 2007 в таблице 1, равна 3.
- 22+3=25.
- Числу 25 в таблице 2 соответствует четверг– это и есть искомый день недели.
Подскажите как узнать по дате день недели (формула вечного календаря)
где d — число месяца;
m — номер месяца, начиная с марта (март=1, апрель=2, ..февраль=12);
y — номер года в столетии (например, для 1965 года y=65. Для января и февраля 1965 года, т. е. для m=11 или m=12 номер года надо брать предыдущий, т. е. y=64);
c — количество столетий (например, для 2000 года c=20. И здесь для января и февраля 2000 года надо брать предыдущее столетие с=19);
квадратные скобки означают целую часть полученного числа (отбрасываем дробную) .
Результат W делите на 7 и модуль остатка от деления даст день недели (воскресенье=0, понедельник=1, ..суббота=6)
Пример: для 31 декабря 2008 года определяем:
d=31, m=10, y=8, c=20
По формуле находим:
W = 31 + [ ( 13 * 10 — 1 ) / 5 ] + 8 + [ 8 / 4 ] + [ 20 / 4 ] — 2 * 20 =
= 31 + 25 + 8 + 2 + 5 — 40 = 31
Теперь делим W на 7 и находим остаток от деления: 31 / 7 = 4 и 3 в остатке.
Тройка соответствует дню недели СРЕДА.
(с) Энциклопедия для детей, том 11, Математика, с. 159
——
Практическую реализацию этой формулы можете скачать здесь — http://calendarium.narod.ru/vech/download.html
Остальные ответы
посто не пить.
ошибка в остатке
находим юлианскую дату на первый день месяца нужного года
по юлианской дате находим день недели
далее повторяем эти манипуляции
работает для всех дат периода Скалигера