Определение дня недели

Перейти к навигацииПерейти к поиску

Определение дня недели для любой даты может быть выполнено с помощью множества алгоритмов. Кроме того, вечные календари не требуют вычислений от пользователя и по сути представляют собой справочные таблицы. Типичное применение — вычислить день недели, в который кто-то родился или произошло конкретное событие.

Концепции

В числовом расчёте дни недели представлены в виде номеров дней недели. Если понедельник является первым днём недели, дни могут быть закодированы от 1 до 7, с понедельника по воскресенье, как это практикуется в ISO 8601. День, обозначенный цифрой 7, также может быть обозначен как 0, применяя арифметический модуль 7, который вычисляет остаток числа после деления на 7. Таким образом, число 7 обрабатывается как 0, 8 как 1, 9 как 2, 18 как 4 и так далее. Если воскресенье считается днём 1, то 7 дней спустя (то есть день 8) также является воскресеньем, а день 18 совпадает с днём 4, который является средой, поскольку он выпадает на три дня после воскресенья.

Стандарт Понедельник Вторник Среда Четверг Пятница Суббота Воскресенье Примеры использования
ISO 86011 2 3 4 5 6 7 %_ISODOWI%, %@ISODOWI[]% (4DOS);[1] DAYOFWEEK() (HP Prime)[2]
0 1 2 3 4 5 6
2 3 4 5 6 7 1 %NDAY OF WEEK% (NetWare, DR-DOS[3]); %_DOWI%, %@DOWI[]% (4DOS)[1]
1 2 3 4 5 6 0 HP финансовые калькуляторы

Базовый подход почти всех методов вычисления дня недели начинается с «даты привязки»: известной пары (например, 1 января 1800 года как среда), определения количества дней между известным днём и днём, который вы пытаетесь определить, и используя арифметический модуль 7, чтобы найти новый числовой день недели.

Один из стандартных подходов — найти (или вычислить, используя известное правило) значение первого дня недели данного столетия, найти (или вычислить, используя метод сравнения) поправку на месяц, вычислить количество високосных лет с начала века, а затем сложить их вместе с количеством лет с начала века и числом дня месяца. В конце концов, получается счётчик дней, к которому применяется модуль 7 для определения дня недели даты.[4]

Некоторые методы сначала делают все добавления, а затем отбрасывают семёрки, тогда как другие отбрасывают их на каждом шаге, как в методе Льюиса Кэрролла. Любой способ вполне жизнеспособен: первый проще для калькуляторов и компьютерных программ, второй — для мысленных расчётов (вполне возможно проделать все вычисления в голове, немного потренировавшись). Ни один из приведённых здесь методов не выполняет проверку диапазона, поэтому неверные даты приведут к ошибочным результатам.

Подобные дни

Каждый седьмой день месяца имеет то же название, что и предыдущий:

День
недели
d
00 07 14 21 280
01 08 15 22 291
02 09 16 23 302
03 10 17 24 313
04 11 18 254
05 12 19 265
06 13 20 276

Подобные месяцы

«Подобные месяцы» — это те месяцы календарного года, которые начинаются в один и тот же день недели. Например, сентябрь и декабрь соответствуют друг другу, потому что 1 сентября приходится на тот же день, что и 1 декабря (поскольку между этими двумя датами ровно тринадцать семидневных недель). Месяцы могут соответствовать только в том случае, если количество дней между их первыми днями делится на 7, или, другими словами, если их первые дни разделены на целое количество недель. Например, февраль обычного года соответствует марту, потому что в феврале 28 дней, при этом число делится на 7, а 28 дней составляют ровно четыре недели. В високосном году январь и февраль соответствуют месяцам, отличным от месяцев обычного года, поскольку добавление 29 февраля означает, что каждый последующий месяц начинается на день позже.

Соответствующие месяцы показаны ниже.

Обычные годы

  • Январь и октябрь.
  • Февраль, март и ноябрь.
  • Апрель и июль.
  • У августа нет подобных месяцев.

Високосные годы

  • Январь, апрель и июль.
  • Февраль и август.
  • Март и ноябрь.
  • У октября нет подобных месяцев.

Все годы

  • Сентябрь и декабрь.
  • У мая и июня нет подобных месяцев.

В приведённой ниже таблице месяцев соответствующие месяцы имеют одинаковое число, что непосредственно следует из определения.

Обычные годыВисокосныеm
Январь октябрьОктябрь0
Май1
АвгустФевраль август2
Февраль март ноябрьМарт ноябрь3
Июнь4
Сентябрь декабрь5
Апрель ИюльЯнварь апрель июль6

Подобные годы

Есть семь возможных дней, с которых год может начаться, и високосные годы изменят день недели после 29 февраля. Это означает, что год может иметь 14 конфигураций. На все конфигурации можно ссылаться с помощью доминирующей буквы, но поскольку 29 февраля не назначена буква, в високосном году есть две доминирующие буквы, одна для января и февраля, а другая (на один шаг назад в алфавитной последовательности) для марта-декабря.

Например, 2013 год был обычным годом, начинающимся во вторник: его первые 2 месяца соответствовали, кроме 29 февраля, месяцам 2008 календарного года, а его последующие 10 месяцев соответствовали 2002 календарному году. Конечно, поскольку ни 2002, ни 2013 не високосные, эти два года полностью соответствуют друг другу. 2014 год был обычным годом, начинающимся в среду: его первые 2 месяца соответствовали месяцам 2003 календарного года, а его последующие 10 месяцев соответствовали календарному году 2008. Конечно, поскольку ни 2003, ни 2014 год не являются високосными, эти два года полностью соответствуют друг другу. 2015 год был обычным годом, начинающимся с четверга, что означает, что год в целом соответствовал календарному 2009 году. С другой стороны, 2016 год был високосным годом, начинающимся в пятницу, который в целом соответствовал календарному 1988 году; в частности, его первые 2 месяца, за исключением 29 февраля, соответствовали месяцам 2010 календарного года, а в связи с високосным днём 2016 года его последующие 10 месяцев соответствовали 2011 календарному году. 2017 год был обычным годом, начинающимся в воскресенье: его первые 2 месяца соответствовали, кроме 29 февраля, месяцам 2012 календарного года, а его последующие 10 месяцев соответствовали 2006 календарному году. Конечно, поскольку ни 2006, ни 2017 не високосные, эти два года полностью соответствуют друг другу. 2018 год был обычным годом, начинающимся в понедельник: его первые 2 месяца соответствовали месяцам 2007 календарного года, а его последующие 10 месяцев соответствовали календарному году 2012. Конечно, поскольку ни 2007, ни 2018 год не являются високосными, эти два года полностью соответствуют друг другу. 2019 год был обычным годом, начинающимся со вторника, что означает, что год в целом соответствовал календарному 2013 году. С другой стороны, 2020 год был високосным годом, начинающимся в среду, который в целом соответствовал календарному 1992 году; в частности, его первые 2 месяца, за исключением 29 февраля, соответствовали месяцам 2014 календарного года, а в связи с високосным днём 2020 года его последующие 10 месяцев соответствовали 2015 календарному году. 2021 год был обычным годом, начинающимся в пятницу: его первые 2 месяца соответствовали, кроме 29 февраля, месяцам 2016 календарного года, а его последующие 10 месяцев соответствовали 2010 календарному году. Конечно, поскольку ни 2010, ни 2021 не високосные, эти два года полностью соответствуют друг другу. 2022 год был обычным годом, начинающимся в субботу: его первые 2 месяца соответствовали месяцам 2011 календарного года, а его последующие 10 месяцев соответствовали календарному году 2016. Конечно, поскольку ни 2011, ни 2022 год не являются високосными, эти два года полностью соответствуют друг другу. 2023 год был обычным годом, начинающимся в воскресенье: год в целом соответствовал календарному 2017 году. 2024 год является високосным годом, начинающимся в понедельник: его первые 2 месяца, за исключением 29 февраля, соответствовали месяцам 2018 календарного года, а в связи с високосным днём 2024 года его последующие 10 месяцев соответствуют календарному году 2019. Год в целом соответствует 1996 календарному году.

Более того:

  • 2025 год будет обычным годом, начинающимся в среду: его первые 2 месяца будут соответствовать месяцам 2020 календарного года, за исключением 29 февраля, а его последующие 10 месяцев будут соответствовать 2014 календарному году. Конечно, поскольку ни 2014, ни 2025 не високосные, эти два года полностью соответствуют друг другу.
  • 2026 год будет обычным годом, начинающимся в четверг: его первые 2 месяца будут соответствовать месяцам 2015 календарного года, а его последующие 10 месяцев будут соответствовать календарному году 2020. Конечно, поскольку ни 2015, ни 2026 год не являются високосными, эти два года полностью соответствуют друг другу.
  • 2027 год будет обычным годом, начинающимся в пятницу: год в целом будет соответствовать календарному 2021 году.
  • 2028 год будет високосным годом, начинающимся в субботу: его первые 2 месяца, за исключением 29 февраля, будут соответствовать месяцам 2022 календарного года, а его последующие 10 месяцев будут соответствовать календарному году 2023. Год в целом будет соответствовать 2000 календарному году. 29 февраля будет вторник.
  • 2029 год будет обычным годом, начинающимся в понедельник: его первые 2 месяца будут соответствовать месяцам 2024 календарного года, за исключением 29 февраля, а его последующие 10 месяцев будут соответствовать 2018 календарному году. Конечно, поскольку ни 2018, ни 2029 не високосные, эти два года полностью соответствуют друг другу.
  • 2030 год будет обычным годом, начинающимся во вторник: его первые 2 месяца будут соответствовать месяцам 2019 календарного года, а его последующие 10 месяцев будут соответствовать календарному году 2024. Конечно, поскольку ни 2019, ни 2030 год не являются високосными, эти два года полностью соответствуют друг другу.

Подробности см. В таблице ниже.

Год
века mod 28
y
00 06 12 17 230
01 07 12 18 241
02 08 13 19 242
03 08 14 20 253
04 09 15 20 264
04 10 16 21 275
05 11 16 22 006

Примечания:

  • Чёрный цвет означает все месяцы обычного года.
  • Красный цвет означает первые 2 месяца високосного года
  • Синий цвет означает последние 10 месяцев високосного года

Вычисления в уме

Календарный устный счёт — это дисциплина на чемпионатах мира по ментальной арифметике, которые проводятся каждые два года, начиная с 2004 года. Максимально возможное количество дней недели для дат с 1600 до 2100 годы по григорианскому календарю должно быть определено в течение одной минуты. Оценивается лучшая из двух попыток.

Чемпион мира по календарным вычислениям[5]
ГодПобедительСтранаРезультат
2004Маттиас КессельшлагерГермания33
2006Маттиас КессельшлагерГермания35
2008Ян ван КонингсвельдГермания40
2010Юсниер ВиераКуба48
2012Мягмарсурэн ТууруулМонголия57
2014Марк Хорнет СансИспания64
2016Георги́ Георги́евБолгария66
2018Марк Хорнет СансИспания71

Мировой рекорд — 140 расчётов в минуту — был установлен в 2018 году Юсниером Виерой из США (ранее Куба)[6].

Особенно сложными являются задачи на определение дня недели с многозначными числами годов. В литературе описано вычисление дня недели даты с восьмизначным годом суперсчётчиками Жаком Иноди и Морисом Дагбером[7].

Из российских счётчиков календарными расчётами со сверхдлинными годами занимается «человек-календарь» Владимир Кутюков[8][9][10][11][12][13].

См. также

Примечания

  1. 1 2 4DOS 8.00 online help. — 2002.
  2. HP Prime - Portal: Firmware update (нем.). Moravia Education (15 мая 2015). Дата обращения: 28 августа 2015. Архивировано 5 ноября 2016 года.
  3. NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds (нем.). — 3rd. — 1997. Архивировано 4 ноября 2016 года. (NB. NWDOSTIP.TXT is a comprehensive work on Novell DOS 7 and OpenDOS 7.01, including the description of many undocumented features and internals. It is part of the author’s yet larger MPDOSTIP.ZIP collection maintained up to 2001 and distributed on many sites at the time. The provided link points to a HTML-converted older version of the NWDOSTIP.TXT file.)
  4. Mapping Time: The Calendar and Its History (англ.). — Oxford University Press, 1999.
  5. Weltmeisterschaften im Kopfrechnen - Mental Calculation World Cup (англ.). Дата обращения: 20 августа 2020. Архивировано 11 февраля 2021 года.
  6. Calendar cflcelftion world records (англ.). Дата обращения: 20 августа 2020. Архивировано 19 июля 2010 года.
  7. В. Д. Пекелис. Твои возможности, человек! — 4-е, перераб. и доп. — Москва: Знание, 1984. — С. 38. — 272 с. — 200 000 экз.
  8. Человек-календарь // Диво 93. Чудеса. Рекорды. Достижения. — Москва: "Диво", 1993. — С. 29. — 191 с. — 100 000 экз. — ISBN 5-87012-008-X..
  9. Человек-календарь // Диво. Чудеса. Рекорды. Достижения. — Москва: "Диво", 1998. — С. 30—31. — 224 с. — 15 000 экз. — ISBN 5-87012-014-4..
  10. Календарь в голове // Диво. Чудеса. Рекорды. Достижения. — Москва: "Диво", 2001. — С. 29—30. — 287 с. — 10 000 экз. — ISBN 5-87012-017-9..
  11. Календарь в голове // Диво. Чудеса. Рекорды. Достижения. — Москва: "Диво", 2005. — С. 28—29. — 208 с. — ISBN 5-87012-023-3..
  12. Человек-календарь // Книга рекордов "Левша". — Москва: Издательский дом "Вся Россия", 2004. — С. 123. — 336 с. — 4000 экз.
  13. Удивительные люди. 4 Сезон. 8 выпуск. Владимир Кутюков. Человек-календарь на YouTube

Литература

Ссылки