Расчет дня недели по дате в уме – не совсем важный навык в век компьютеров. Но это хорошее упражнениедля всех кто хочет развивать память и вычислять. Да и у всех сразу возникает желание в какой день недели он родился. Когда я научился это делать, то первое что сделал – вычислил день недели своего рождения. Оказалось, что это среда и это меня порадовало, что не понедельник, когда у акушеров болит голова после выходных и не пятница , когда они всеми мыслями уже на даче. Неоднократно замечал, что у людей вызывает неподдельное желание – вычислить день какой-нибудь даты.
Казалось бы это сложная задача. Во-первых, как же можно вычислить какой день недели был 15 января 1986 года? Во-вторых, когда начинаешь немного думать, то это кажется и не так сложно. Ведь от этой даты можно посчитать сколько прошло недель и потом разделть на семь. Остаток от деления даст день недели. А вот сколько недель прошло от какой-то даты – это вопрос, ведь нужно точно знать какой был день недели у этой даты отсчета. Получается заколдованный круг.
Очень просто взять за точку отсчета 1 января первого года нашей эры. Установленно расчетами, что это была суббота. Но от этой даты, мягко говоря, прошло много недель и их количество труднее сосчитать, чем поставленная залача. Осложняет подсчет еще то, что в году 365 дней ( не високосный год ), а это 52 полные недели и еще один день. Это означает, что если 1 января первого года была суббота, то 1 января второго года нашей эры было днем позже , то есть – воскресенье. А високосный год сдвигает день недели еще на одну единицу. Правда количество високосных лет нетрудно найти, разделив дату на четыре, при этом до сегодняшнего дня от 1 января первого года набежит приличное количество лет. Но на практике и это упрощается. Прежде всего заметим, что в течение каждого 28 летнего цикла бывает семь високосных лет. Поэтому каждые 28 лет день недели любой даты повторяется.
Однако, есть еще одно осложнение. Эта логика не срабатывает для более ранних дат, которые исчислялись по юлианскому календарю. К сожалению, за четыре года набегает не просто еще один день, но еще чуть-чуть. И этого чуть- чуть набежало столько, что пришлось сдвигать календарь. Так, например, Россия перешла на григорианский календарь в 1918 году, когда после 31 января 1918 года сразу последовало 14 февраля того же года. Тем не менее, сдвиг на 14 дней никак не влияет на расчеты из-за кратности 14 на 7.
Разные страны переходили на григорианский календарь в разные сроки. Континентальный Китай, например, перешел на этот календарь только в 1949 году. Но я думаю, нас мало интересует какой день недели был первое апреля 1863 года, а тем более в Китае. Григорианский календарь был создан в 1582 году, но не был официально принят англичанами вплоть до 1752 года, когда среда второго сентября вдруг стала четвергом четырнадцатого сентября. Особенность григорианского календаря заключается в том, что он повторяет себя каждые четыреста лет, так что любую дату из будущего можно преобразовать в дату 2000 года.
Наибольшую трудность представляет то, что в каждом месяце у нас различное число дней. Тридцать дней чередуются с тридцать одним, а бывает еще двадцать восемь, а иногда и двадцать девять. Если бы не это, то считать было бы совсем легко. Поэтому для месяцев необходимо запомнить таблицу:
январь – 6 ( в високосный год – 5)
февраль – 2 (в високосный год – 1 )
март – 2
апрель – 5
май – 0
июнь – 3
июль – 5
август – 1
сентябрь – 4
октябрь – 6
ноябрь – 2
декабрь – 4
Эти числа для каждого года называются кодом месяца.
Для вычисления кода года применяется совсем простое правило. Например, для любого года код определяется следующим образом. Возьмем 2021 год. Тогда
21 + 21 : 4 = 21 + 5 = 26
Здесь после деления 21 на 4 отброшен остаток. Теперь 26 делим на 7, получаем остаток 5 – это и есть код года. Но 21 можно было не прибавлять так, как это число делится на 7 и его можно не учитывать.
Например, возьмем 1923 год.
23 + 23 : 4 = 2 + 5 = 0
Код этого года равен 0.
Теперь, собственно, можно приступить к расчету дня недели по дате. Формула для вычислений проста. Необходимо сложить код месяца, день месяца ( дата ) и код года. Полученный результат делим на семь, остаток будет давать день недели. При этом будем считать:
понедельник – 1
вторник – 2
среда – 3
четверг – 4
пятница – 5
суббота – 6
воскресенье – 7 или 0
Это важно потому, что в некоторых методиках вычислений в литературе считается, что субботе приходится цифра 0 или 7, а воскресенье – 1, то есть воскресенье считается первым днем недели.
Итак, окончательно надо найти
КОД МЕСЯЦА + ДАТА + КОД ГОДА.
Разберем расчет на конкретно примере. Сейчас, когда я пишу это 29 марта 2021 года. Код марта – 2, дата – 29, код года – 5.
2 + 29 + 5 = 1
1 – Это понедельник. Действительно сегодня понедельник.
Кстати, посмотрим в какой день недели будет в этом году Новый год.
31 декабря 2021
4 + 31 + 5 = 5 – пятница.
Ух и длинные будут каникулы в этом году.
По этой методике можно определить и день недели по дате в будущем. Давайте найдем в какой день недели будет Новый год в 2050 году.
31 декабря 2050
4 + 31 + 6 = 6 – суббота
По поводу продолжительности каникул в 2050 году ничего сказать не могу.
Теперь можно перейти к веку прошлому. В этом случае задача решается точно также, но необходимо передвинуть итоговый ответ на один день вперед ( или прибавить единицу к коду года ).
Это связанно с переходом в другое столетие и у них есть тоже свой код. Значит пользуемся той же формулой, но добавляем один день.
Проверим расчет по дате, которая хорошо известна любому в нашей стране.
22 июня 1941 год
3 + 22 + 41 + 41 : 4 + 1 = 3 + 1 + 6 + 3 + 1 = 14 = 0.
Здесь из 22 выброшено 21 – остаток 1, из 41 выброшено 35 – остаток 6, из 10 выброшено 7 – остаток 3. Итого получается 14 и после деления на 7 остаток 0, то есть – воскресенье. Действительно.
Юрий Алексеевич Гагарин полетел в космос 12 апреля 1961 года.
5 + 12 + 61 + 61 : 4 + 1 = 5 + 5 + 5 + 1 + 1 = 17 = 3
Это была среда!
Теперь предлагаю вам самим определить день недели любой даты, например, собственный день рождения.