Для определения дня недели по дате нужно использовать формулу:
день недели = (день + код месяца + код года) % 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. Вот с того самого дня ее и тролю)))
Соавтор поста Алинка Админка