с какой периодичностью повторяются года по дням недели
Ответы на календарные вопросы
Возможно, что из вредности я поместил эти вопросы в свою миниатюру, забывая, что в летнюю жару трудно соображать на отвлечённые темы. Поэтому безо всяких претензий помещаю правильные ответы:
1. Почему календари полностью повторяются через 28 лет?
В обычном году 365 дней, что составляет 52 недели и один день: 7 х 52 + 1 = 365.
Этот один день сдвигает календарь следующего года на один день недели. Будь в каждом году 365 дней, то календари повторялись бы через 7 лет. Однако високосный год с 366 днями раз в 4 года сдвигает календарь на два дня недели. Таким образом, календарь повторяется через: 7 х 4 = 28 лет.
2. Какие два месяца подряд имеют по 31 дню?
Если вы назвали июль и август, то правы, но только наполовину. Для полного ответа надо назвать ещё декабрь и январь.
3. Какая вероятность того, что пятница выпадет на 13-е число месяца?
Число 13 есть в каждом месяце, и на него может выпасть любой день недели, включая пятницу. Отсюда следует, что пятница выпадает на это число с вероятностью 1 к 7, либо 14,3%, что не так мало.
Пятница 13-го (или день неприятностей) — распространённый, благодаря численным суевериям миф, по которому именно в этот день следует быть постоянно начеку, готовым к любым неприятностям и стараться остерегаться всяческого рода неудач.
Данная фобия рассматривается как частный случай трискайдекафобии (боязнь числа 13). Уверен, что вас такая фобия не касается.
Изучаем календарь
«Существует ли год, в котором ни один месяц не начинается в понедельник?»
На первый взгляд — да. Год может начинаться с любого дня недели, месяцы тоже каждый раз начинаются в разные дни недели. Вариантов множество, скорее всего, найдётся и не один такой год.
Так я подумал в первую минуту после того, как задался вопросом. Это следовало бы доказать. Перебрать все года, например. Простой и быстрый способ, но не интересный. Доказать математически было намного более заманчивой идеей, но как к этому подступиться я совершенно не понимал. Поэтому просто начал выписывать продолжительность каждого месяца на бумагу.
Тут стоит оговорить, что речь дальше пойдёт про григорианский календарь, по которому мы живём с 1918 года. Однако часть рассуждений будет верна и для юлианского.
На самом деле такого года не существует. Давайте разбираться почему.
Часть 1. Месяцы
Янв | Фев | Март | Апр | Май | Июнь | Июль | Авг | Сен | Окт | Нояб | Дек |
31 | 28 / 29 | 31 | 30 | 31 | 30 | 31 | 31 | 30 | 31 | 30 | 31 |
Янв | Фев | Март | Апр | Май | Июнь | Июль | Авг | Сен | Окт | Нояб | Дек |
3 | 0 / 1 | 3 | 2 | 3 | 2 | 3 | 3 | 2 | 3 | 2 | 3 |
если в месяце (28 + N) дней, то первое число следующего месяца сдвинется на N дней относительно дня недели первого числа текущего месяца.
Например, в этом году январь начался во вторник, поэтому февраль начался в пятницу. Вт + 3 = Пт.
Насколько же сдвинут день недели первого числа некоторого месяца? Чтобы найти это, надо просуммировать «излишки» дней над четырьмя неделями во всех предыдущих месяцах. В таблице представлены сдвиги относительно дня недели на первое января. Первая строка для невисокосного года, вторая для високосного.
Янв | Фев | Март | Апр | Май | Июнь | Июль | Авг | Сен | Окт | Нояб | Дек |
0 | 3 | 3 | 6 | 8 | 11 | 13 | 16 | 19 | 21 | 24 | 26 |
0 | 3 | 4 | 7 | 9 | 12 | 14 | 17 | 20 | 22 | 25 | 27 |
Янв | Фев | Март | Апр | Май | Июнь | Июль | Авг | Сен | Окт | Нояб | Дек |
0 | 3 | 3 | 6 | 1 | 4 | 6 | 2 | 5 | 0 | 3 | 5 |
0 | 3 | 4 | 0 | 2 | 5 | 0 | 3 | 6 | 1 | 4 | 6 |
Вот теперь другое дело! Ясно видно, как определить день недели на первое число любого месяца, если известен день недели на первое января. Надо просто прибавить сдвиг для интересующего месяца. Закономерность февраль-март-ноябрь я знаю ещё со школы, а другие не замечал.
Мы получили ответ на вопрос в начале статьи.
Так как для обоих вариантов года в таблице присутствуют все сдвиги от 0 до 6, то в любом году есть месяц, который начинается в какой-то определённый день недели.
Но теперь можно задавать другие вопросы. Например, «в каких годах такой месяц только один?» или «в какие года таких месяцев максимально много?». Для этого надо уметь определять день недели на первое января любого года.
Часть 2. Годы
Когда я учился программировать, а это было в 10 классе школы на PascalABC, одним из первых серьёзных заданий было реализовать процедуру, распечатывающую календарь на год, который передавался как аргумент. У нас были подсказки, какие функции для этого надо реализовать. В целом всё сводилось к подсчёту дней между двумя датами: эталонной и текущей, чтобы определить день недели на первое января нужного года.
Такой подход работал, но скорость зависела от того, насколько близко необходимый год к эталонному. Меня это расстраивало, но придумать что-то лучше я тогда не смог. Теперь же настал идеальный момент, чтобы до конца разобраться в этом.
Високосные года в григорианском календаре назначаются следующим образом:
Из этого описания видно, что цикл високосности имеет период в 400 лет. Но не ясно, будут ли такие четырёхсотлетние циклы начинаться в один и тот же день недели.
Заметим, что первое января от года к году смещается на один или два дня недели, и напишем
В григорианском календаре все четырёхсотлетние циклы начинаются в понедельник.
Первое столетие начинается со смещением по циклу, равным 0, второе со смещением 4, третье со смещением 8 и четвёртое со смещением 12. Именно для этого таблица представлена в виде, где в столетии есть «сотые» года и нет нулевых. Стоит сказать, что всего существует 14 различных вариантов года. В двадцативосьмилетнем цикле по одному разу на каждый день недели приходится начало високосного года и по три раза начало не високосного.
Теперь мы можем определить день недели для любой даты, не используя опорных дат. Для этого нам надо понять, в каком столетии внутри четырёхсотлетнего цикла находится год и какой он по счёту в этом столетии. По таблице определим день недели на первое января года, а с помощью первой части статьи — день недели в конкретное число нужного месяца. Вместо тысячи слов
Часть 3. Итоги
С помощью всего двух таблиц можно определить день недели для любой даты, не используя при этом опорных дат.
Янв | Фев | Март | Апр | Май | Июнь | Июль | Авг | Сен | Окт | Нояб | Дек |
0 | 3 | 3 | 6 | 1 | 4 | 6 | 2 | 5 | 0 | 3 | 5 |
0 | 3 | 4 | 0 | 2 | 5 | 0 | 3 | 6 | 1 | 4 | 6 |
Во время написания статьи, я нашёл на Хабре две схожие по тематике: раз и два. Автор первой с помощью специальной таблицы показывает, как найти в уме день недели для дат в XX и XXI веках. Представленная им таблица содержит 56 чисел. Предложенный в статье алгоритм использует таблицу дней недели и две таблицы смещений, содержащие (28 + 2*12) = 52 числа, которые необходимо запомнить. Весь исходный код лежит на GitHub’е.
Интересный факт: с 1 по 13 февраля 1918 года в Советской России не родился ни один человек.
Задавайте себе вопросы с утра по воскресеньям =)
Обновление от 03.07.2019 (среда)
Если представить двадцативосьмилетний цикл в виде таблицы,
то становится понятно, как можно вычислить смещение дня недели на первое января:
С учётом этого, а также того, что смещения для месяцев в високосном году можно вычислить через смещения в невисокосном, напишем
Таким образом, можно вычислить день недели для любой даты, зная всего лишь 12 чисел: смещения дней недели на первое число каждого месяца.
Можно ли использовать календарь повторно?
Погодите выбрасывать календари!
Дело в том, что существует определённая закономерность в совпадении календарей разных лет с точностью до дней недели и чисел. Таким образом, можно даже немного сэкономить.
Постоянный читатель еженедельника «Аргументы и факты в Беларуси», ведущий инженер факультета радиофизики и компьютерных технологий Центра аэрокосмического образования БГУ Владимир МАРУШКЕВИЧ увлекся календарями давно. В 1989 году читатель отдыхал у родственников и увидел брошюру c календарем на 1961 год. Тогда Владимир Станиславович заметил, что он полностью идентичен действующему календарю 1989 года.
Послевисокосный год тоже имеет свои особенности. Для него можно использовать календарь года, который получается, если отнять от текущего 11 лет. Календарь же послевисокосного года можно использовать заново через 6 лет.
Для года, который предшествует високосному, наоборот, подойдет календарь шестилетней давности, а календарь предвисокосного года можно использовать заново только через 11 лет.
Календарь обычного года, не отмеченного вышеперечисленными особенностями, можно использовать каждые 11 лет.
Владимир Станиславович разработал таблицу (патент на полезную модель №7567 BY), в которой можно быстро разобраться, в каком году и какой календарь подойдет. Для наглядности мы взяли период с 1905 по 2055 годы.
Судя по таблице, календарь на 2017 год совпадает с календарями на 1961 и 1989 годы. А вот для наступающего 2018 года подойдут старые календари на 1962 и 1990 годы.
Что бы не было больше постов про повторение календарей!
Ежегодные календари 1901-2099 гг.
1 января Простые годы (365д)
Понедельник 1906 1917 1923 1934 1945 1951 1962 1973 1979 1990 2001 2007 2018 2029 2035 2046 2057 2063 2074 2085 2091
Вторник 1901 1907 1918 1929 1935 1946 1957 1963 1974 1985 1991 2002 2013 2019 2030 2041 2047 2058 2069 2075 2086 2097
Среда 1902 1913 1919 1930 1941 1947 1958 1969 1975 1986 1997 2009 2014 2025 2031 2042 2053 2059 2070 2081 2087 2098
Четверг 1903 1914 1925 1931 1942 1953 1959 1970 1981 1987 1998 2009 2015 2026 2037 2043 2054 2065 2071 2082 2093 2099
Пятница 1909 1915 1926 1937 1943 1954 1965 1971 1982 1993 1999 2010 2021 2027 2038 2049 2055 2066 2077 2083 2094
Суббота 1910 1921 1927 1938 1949 1955 1966 1977 1983 1994 2005 2011 2022 2033 2039 2050 2061 2067 2078 2089 2095
Воскресенье 1905 1911 1922 1933 1939 1950 1961 1967 1978 1989 1995 2006 2017 2023 2034 2045 2051 2062 2073 2079 2090
1 января Високосные годы (366д)
Понедельник 1912 1940 1968 1996 2024 2052 2080
Вторник 1924 1952 1980 2008 2036 2064 2092
Среда 1908 1936 1964 1992 2020 2048 2076
Четверг 1920 1948 1976 2010 2032 2060 2088
Пятница 1904 1932 1960 1988 2016 2044 2072
Суббота 1916 1944 1972 2000 2028 2056 2084
Воскресенье 1928 1956 1984 2012 2040 2068 2096
Положение первого дня года в неделе определяет годичный календарь для простых и високосных годов. По этому признаку были сгруппированны годы с 1901 по 2099: по 7 групп для простых и високосных годов, начиная с 1 января, пришедшегося на понедельник и заканчивая 1 январем, пришедшимся на воскресенье, соответственно.
LiveInternetLiveInternet
—Метки
—Рубрики
—Музыка
—Поиск по дневнику
—Подписка по e-mail
—Друзья
—Сообщества
—Трансляции
—Статистика
C какой периодичностью повторяется календарь за разные годы, так что дни недели и числа совпадают?
C какой периодичностью повторяется календарь за разные годы, так что дни недели и числа совпадают?
Однако мы знаем, что, кроме обычных, существуют еще и високосные года. Они-то нам все и портят. Но не очень. Мы просто купим еще семь календарей. Ведь даже високосный год может начаться только с какого-то одного дня недели (с понедельника по воскресенье).
Календари високосных лет совпадают полностью через 28 лет. То есть календарь 2012 года будет актуален и для 2040 года.
В предвисокосный, например в 2011, делаем все наоборот. Для 2011 года пригодился бы календарь 2005 года. А вот календарь 2011 года потребуется только в 2022 году.
Надеюсь, что смог понятно объяснить.
А если бы в любом году было 364 дня, то календарь был бы один.
А почему именно 28? Потому, что 28 = 7 * 4.
Отталкиваясь от этой идеи, можно найти повторение календаря для любой системы.
Например если бы в неделе было 13 дней, а високосный год повторялся бы каждые 5 лет, то календарь бы повторялся каждые 13 * 5 = 65 лет.