Определение дня недели: различия между версиями

оформление, викификация, категоризация
м (+ {{изолированная статья}})
(оформление, викификация, категоризация)
Определение дня недели для любой даты может быть выполнено с помощью множества алгоритмов[[алгоритм]]ов. Кроме того, [[Вечный календарь|вечные календари]] не требуют вычислений от пользователя и по сути представляют собой справочные таблицы. Типичное применение - — вычислить [[Названия дней недели|день недели]], в который кто-то родился или произошло конкретное событие.
 
== Концепции ==
В числовом расчете дни недели представлены в виде номеров дней недели. Если понедельник является первым днем недели, дни могут быть закодированы от 1 до 7, с понедельника по воскресенье, как это практикуется в [[ISO 8601]]. День, обозначенный цифрой 7, также может быть обозначен как 0, применяя [[Модульная арифметика|арифметический модуль]] 7, который вычисляет остаток числа после деления на 7. Таким образом, число 7 обрабатывается как 0, 8 как 1, 9 как 2, 18 как 4 и так далее. Если воскресенье считается днем 1, то 7 дней спустя (то есть день 8) также является воскресеньем, а день 18 совпадает с днем 4, который является средой, поскольку он выпадает на три дня после воскресенья.
 
{| class="wikitable"
| %_ISODOWI%, %@ISODOWI[]% ([[4DOS]]);<ref name="4DOS_8.00_HELP">{{cite book |title=4DOS 8.00 online help |title-link=4DOS 8.00 |author-first1=Hardin |author-last1=Brothers |author-first2=Tom |author-last2=Rawson |author-link2=Tom Rawson |author-first3=Rex C. |author-last3=Conn |author-link3=Rex C. Conn |author-first4=Matthias R. |author-last4=Paul |author-first5=Charles E. |author-last5=Dye |author-first6=Luchezar I. |author-last6=Georgiev |date=2002-02-27}}</ref> DAYOFWEEK() ([[HP Prime]])<ref name="Moravia_2015">{{cite web |title=HP Prime - Portal: Firmware update |publisher=Moravia Education |date=2015-05-15 |language=de |url=http://hp-prime.de/de/id/61-firmware-update |access-date=2015-08-28 |url-status=live |archive-url=https://web.archive.org/web/20161105001326/http://hp-prime.de/de/id/61-firmware-update |archive-date=2016-11-05}}</ref>
|-
|
| 0
| 1
| 5
| 6
|
|-
|
| 2
| 3
| 7
| 1
| [[%NDAY OF WEEK%]] ([[NetWare]], [[DR-DOS]]<ref>{{cite book |title=NWDOS-TIPs &mdash; Tips &amp; Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds |work=MPDOSTIP |author-first=Matthias R. |author-last=Paul |date=1997-07-30 |edition=3rd |version=Release 157 |language=de |url=http://www.antonis.de/dos/dos-tuts/mpdostip/html/nwdostip.htm |access-date=2014-08-06 |url-status=live |archive-url=https://web.archive.org/web/20161104235829/http://www.antonis.de/dos/dos-tuts/mpdostip/html/nwdostip.htm |archive-date=2016-11-04}} (NB. <code>NWDOSTIP.TXT</code> 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'sauthor’s yet larger <code>MPDOSTIP.ZIP</code> 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 <code>NWDOSTIP.TXT</code> file.)</ref>); %_DOWI%, %@DOWI[]% ([[4DOS]])<ref name="4DOS_8.00_HELP"/>
|-
|
| 1
| 2
Базовый подход почти всех методов вычисления дня недели начинается с «даты привязки»: известной пары (например, 1 января 1800 года как среда), определения количества дней между известным днем и днем, который вы пытаетесь определить, и используя арифметический модуль 7, чтобы найти новый числовой день недели.
 
Один из стандартных подходов - — найти (или вычислить, используя известное правило) значение первого дня недели данного столетия, найти (или вычислить, используя метод сравнения) поправку на месяц, вычислить количество високосных лет с начала века, а затем сложить их вместе с количеством лет с начала века и числом дня месяца. В конце концов, получается счетчик дней, к которому применяется модуль 7 для определения дня недели даты.<ref>{{cite book |author-last=Richards |author-first=E. G. |date=1999 |title=Mapping Time: The Calendar and Its History |url=https://archive.org/details/mappingtimecalen00rich |url-access=registration |publisher=[[Oxford University Press]]}}</ref>
 
Некоторые методы сначала делают все добавления, а затем отбрасывают семерки, тогда как другие отбрасывают их на каждом шаге, как в методе [[Льюис Кэрролл|Льюиса Кэрролла]]. Любой способ вполне жизнеспособен: первый проще для калькуляторов и компьютерных программ, второй - — для мысленных расчетов (вполне возможно проделать все вычисления в голове, немного потренировавшись). Ни один из приведенных здесь методов не выполняет проверку диапазона, поэтому неверные даты приведут к ошибочным результатам.
 
=== Подобные дни ===
Каждый седьмой день месяца имеет то же название, что и предыдущий:
{| class="wikitable"
|-
!День <br /> недели ||{{mvar|d}}
|-
|00 07 14 21 28 ||0
 
=== Подобные месяцы ===
«Подобные месяцы» - — это те месяцы календарного года, которые начинаются в один и тот же день недели. Например, сентябрь и декабрь соответствуют друг другу, потому что 1 сентября приходится на тот же день, что и 1 декабря (поскольку между этими двумя датами ровно тринадцать семидневных недель). Месяцы могут соответствовать только в том случае, если количество дней между их первыми днями делится на 7, или, другими словами, если их первые дни разделены на целое количество недель. Например, февраль обычного года соответствует марту, потому что в феврале 28 дней, при этом число делится на 7, а 28 дней составляют ровно четыре недели. В високосном году январь и февраль соответствуют месяцам, отличным от месяцев обычного года, поскольку добавление 29 февраля означает, что каждый последующий месяц начинается на день позже.
 
Соответствующие месяцы показаны ниже.
Есть семь возможных дней, с которых год может начаться, и високосные годы изменят день недели после 29 февраля. Это означает, что год может иметь 14 конфигураций. На все конфигурации можно ссылаться с помощью доминирующей буквы, но поскольку 29 февраля не назначена буква, в високосном году есть две доминирующие буквы, одна для января и февраля, а другая (на один шаг назад в алфавитной последовательности) для марта-декабря. .
 
Например, 2019 год был обычным годом, начинающимся со вторника, что означает, что год в целом соответствовал календарному 2013 году. С другой стороны, 2020 год - — это високосный год, начинающийся в среду, который в целом будет соответствовать календарному году 1992 года; в частности, его первые 2 месяца, за исключением 29 февраля, будут соответствовать месяцам 2014 календарного года, а в связи с високосным днем 2020 года его последующие 10 месяцев будут соответствовать 2015 календарному году.
 
Более того:
{| class="wikitable" style="text-align:center"
|-
! Год <br /> века mod 28 ||{{mvar|y}}
|-
| <span style="color:blue;">00</span> 06 <span style="color:red;">12</span> 17 23 ||0
|-
| 01 07 <span style="color:blue;">12</span> 18 <span style="color:red;">24</span> ||1
|-
| 02 <span style="color:red;">08</span> 13 19 <span style="color:blue;">24</span> ||2
|-
Примечания:
 
* ЧерныйЧёрный цвет означает все месяцы обычного года.
* <span style="color:red;">Красный цвет</span> означает первые 2 месяца високосного года
* <span style="color:blue;">Синий цвет</span> означает последние 10 месяцев високосного года
 
== См. также ==
 
* [[Doomsday rule]]
* [[Julian day]]
* [[Buddhist calendar]]
 
== ИсточникиПримечания ==
{{примечания}}
{{reflist|40em}}
{{Refbegin}}
* {{cite book|last=Hale-Evans|first=Ron|chapter=Hack #43: Calculate any weekday|title=Mind performance hacks|year=2006|publisher=O'Reilly|location=Beijing|isbn=9780596101534|pages=[https://archive.org/details/mindperformanceh00hale/page/164 164&ndash;169]|edition=1st|url-access=registration|url=https://archive.org/details/mindperformanceh00hale/page/164}}
* {{cite journal|last=Thioux|first=Marc|author2=Stark, David E. |author3=Klaiman, Cheryl |author4= Schultz, Robert T. |title=The day of the week when you were born in 700 ms: Calendar computation in an autistic savant.|journal=Journal of Experimental Psychology: Human Perception and Performance|year=2006|volume=32|issue=5|pages=1155-11681155—1168|doi=10.1037/0096-1523.32.5.1155}}
* {{cite book|last=Treffert|first=Darold A.|title=Islands of genius : the bountiful mind of the autistic, acquired, and sudden savant|publisher=Jessica Kingsley|location=London|isbn=9781849058735|chapter=Why calendar calculating?|pages=63&ndash;66|edition=1. publ., [repr.].}}
{{Refend}}
 
== Ссылки ==
== Внешние ссылки ==
* [http://www.tondering.dk/claus/cal/chrweek.php#calcdow Tødering'sTødering’s algorithm for both Gregorian and Julian calendars]
* [https://web.archive.org/web/20160321132458/http://www.angelfire.com/my/zelime/calendar.html "«Key Day"» method used so as to reduce computation & memorization]
* [http://katzentier.de/_misc/perpetual_calendar.htm Compact tabular method for memorisation, also for the Julian calendar]
* [http://www.tondering.dk/claus/cal/gregorian.php#country When countries changed from the Julian calendar]
* [http://www.recordholders.org/en/list/mental-calculation-rankings.html National records for finding Calendar Dates]
* [http://www.memoriad.com/index.asp?s=kategoriler&b=kategori-detay&kategoriid=dcacea11f97125360e50694fd11c2ae4&lang=EN World Ranking of Memoriad Mental Calendar Dates] (all competitions combined)
* [http://www5a.biglobe.ne.jp/%257eaccent~accent/calendar/retro.htm Identify the year by given month, day, day of week.]
 
{{изолированная статья}}
 
[[Категория:Дни недели|*determination]]
[[Категория:Григорианский календарь]]
[[Категория:Юлианский календарь]]
[[Категория:Календарные алгоритмы]]
[[Category:Calendar algorithms]]