"Информатика", Рудченко Т.А., Семёнов А.Л. / Под ред. Семёнова А.Л.
Дни недели повторяются в неизменном порядке: понедельник, вторник, среда, четверг, пятница, суббота, воскресенье — и снова понедельник. Такая последовательность называется круговой цепочкой. Она помогает быстро находить день недели для даты или события, не перебирая все дни подряд. Для расчётов используют цикл из семи дней, длину месяцев и продолжительность года: 365 дней в обычном году и 366 в високосном.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Круговая цепочка — последовательность, в которой после последнего элемента снова следует первый. Например, дни недели идут по порядку от понедельника до воскресенья, а затем снова начинается понедельник. Такое представление нужно, чтобы описывать повторяющиеся последовательности и не считать их бесконечными рядами.
Календарный цикл — повторение порядка дней недели через каждые семь дней. Если от известного дня отсчитать полную неделю, мы вернёмся к тому же дню недели. Это позволяет при расчётах не учитывать целые семидневные отрезки, а сосредоточиться на оставшихся днях.
Календарный год — промежуток времени, включающий полный годовой порядок дат и месяцев. Его продолжительность задаётся количеством дней, распределённых по месяцам. Знание этой продолжительности необходимо, чтобы правильно переходить от дат одного года к датам следующего.
Високосный год содержит 366 дней, а обычный год — 365. Дополнительный день находится в феврале: в обычном году там 28 дней, в високосном — 29. Это различие учитывают, когда считают дни между датами, особенно если путь проходит через февраль.
Дни недели образуют круговую цепочку, потому что после седьмого дня порядок не заканчивается, а повторяется. За воскресеньем идёт понедельник, затем вторник и остальные дни в том же порядке. Поэтому любую дату можно связать с одним из семи названий, даже если считать дни далеко вперёд. Круг помогает представить переход от последнего элемента к первому без отдельного правила «начать заново».
Чтобы узнать день недели через несколько дней, достаточно учесть остаток от деления числа прошедших дней на 7. Причина в том, что каждые семь дней полностью повторяют календарный цикл: например, через 14 дней будет тот же день недели, что и сегодня. Если прошло 10 дней, это одна полная неделя и ещё 3 дня, значит, нужно сделать только три шага по цепочке. Остаток показывает именно число шагов, которое изменит день недели.
Длина месяца определяет, на какой день недели придётся первое число следующего месяца. Между первыми числами соседних месяцев проходит столько дней, сколько было в текущем месяце. Полные недели не дают сдвига, поэтому учитывают остаток от деления числа дней месяца на 7: например, 31 день даёт сдвиг на три дня. Такой расчёт выполняют по круговой цепочке, а для февраля выбирают длину, соответствующую обычному или високосному году.
За обычный год проходит 365 дней, а 365 = 52 × 7 + 1. Значит, в году помещаются 52 полные недели и ещё один день, поэтому первое число следующего года сдвигается на один день недели. В високосном году 366 = 52 × 7 + 2, и остаток равен двум. Именно поэтому при переходе к следующему году его начало сдвигается на два дня по сравнению с началом предыдущего.
Чтобы определить день недели для неизвестной даты, нужно знать день недели другой даты и посчитать, сколько дней разделяет их. Суммируй длины месяцев между датами, добавляя или вычитая дни внутри начального и конечного месяца, если даты не совпадают с первыми числами. Затем раздели полученное число на 7 и передвинься по цепочке на остаток шагов. Если расчёт проходит через февраль, проверь, високосный ли год: ошибка в один день изменит итоговый ответ.
| Месяц | Число дней в обычном году | Число дней в високосном году | Сдвиг дня недели для начала следующего месяца |
|---|---|---|---|
| Январь | 31 | 31 | 3 дня |
| Февраль | 28 | 29 | 0 или 1 день |
| Март | 31 | 31 | 3 дня |
| Апрель | 30 | 30 | 2 дня |
| Май | 31 | 31 | 3 дня |
| Июнь | 30 | 30 | 2 дня |
| Июль | 31 | 31 | 3 дня |
| Август | 31 | 31 | 3 дня |
| Сентябрь | 30 | 30 | 2 дня |
| Октябрь | 31 | 31 | 3 дня |
| Ноябрь | 30 | 30 | 2 дня |
| Декабрь | 31 | 31 | 3 дня |
В последнем столбце указано, на сколько дней недели сдвинется начало следующего месяца; значение получено как остаток от деления длины месяца на 7. Для февраля в обычном году сдвига нет, а в високосном он равен одному дню. Например, если месяц начинается в среду и в нём 31 день, следующий месяц начнётся через три шага по цепочке.
Порядок дней повторяется через семь суток, поэтому отделим полную неделю от оставшихся дней. При делении 10 на 7 получаем 1 полную неделю и остаток 3.
Полная неделя возвращает нас к понедельнику. Теперь пройдём три шага вперёд: вторник — первый шаг, среда — второй, четверг — третий.
Ответ: через 10 дней будет четверг.
От одного первого числа до следующего проходит 31 день. Разделим 31 на 7: это четыре полные недели и остаток 3.
Четыре полные недели оставляют день недели прежним, поэтому учитываем только три шага после среды. Первый шаг — четверг, второй — пятница, третий — суббота.
Ответ: первое число следующего месяца приходится на субботу.
В високосном году январь длится 31 день, а февраль — 29. До 1 марта от 1 января проходит 31 + 29 = 60 дней; сам день 1 января не прибавляем, потому что считаем переходы между датами.
Разделим 60 на 7: получим 8 полных недель и остаток 4. Значит, от понедельника нужно пройти четыре шага по цепочке: вторник, среда, четверг, пятница.
Ответ: 1 марта приходится на пятницу.
Первая ошибка — считать, что после воскресенья цепочка заканчивается. Так бывает, если представить дни прямой линией и забыть о повторении; проверь себя, спросив, какой день наступает после воскресенья: это понедельник. Замыкание цепочки возвращает расчёт к началу.
Вторая ошибка — прибавлять все прошедшие дни, не учитывая повторение цикла. Большие числа трудно отсчитывать по одному, и легко сбиться; раздели число на 7 и используй только остаток. Например, через 21 день наступит тот же день недели, потому что это три полные недели.
Третья ошибка — считать, что в феврале високосного года 28 дней. Обычно вспоминают только привычную длину месяца и не проверяют тип года; сверяй календарь и используй 29 дней в високосном году. Иначе расчёт дат после февраля даст сдвиг на один день.
Четвёртая ошибка — сдвигать день недели сразу на полное число дней месяца. Так можно запутаться в длинном отсчёте; выдели полные недели и отдельно посчитай остаток. Для проверки умножь число полных недель на 7 и убедись, что прибавленный остаток вместе с ними даёт исходное число дней.
Для календарных расчётов нужно знать порядок дней недели, названия месяцев и количество дней в каждом месяце. Эти сведения связывают последовательность дней с реальными датами: одного знания цикла из семи дней недостаточно, если неизвестна длина месяца. Тот же принцип повторения используется в расписаниях и циклических алгоритмах, где действия выполняются по кругу. Остаток от деления помогает сократить длинный расчёт и найти положение элемента в цикле.
Почему дни недели удобно изображать по кругу?
Порядок дней повторяется: после воскресенья снова наступает понедельник. Круг показывает это повторение и помогает видеть, что после полного цикла из семи дней мы возвращаемся к исходному дню.
Как быстро определить день недели через несколько дней?
Раздели число дней на 7 и найди остаток. От известного дня недели пройди вперёд столько шагов, сколько показывает остаток.
Почему при вычислении дня недели делят число дней на 7?
В неделе семь дней, и через каждые семь суток порядок дней начинается заново. Полные семидневные циклы не меняют день недели, поэтому достаточно учесть остаток.
Как длина месяца влияет на день недели в начале следующего месяца?
Начало следующего месяца наступает после всех дней текущего, поэтому день недели сдвигается на их число. Полные недели можно отбросить: сдвиг задаёт остаток от деления длины месяца на 7.
Чем високосный год меняет расчёт по календарю?
В високосном году 366 дней, а в феврале — 29 вместо 28. Поэтому при переходе между датами через февраль нужно учитывать дополнительный день; годовой сдвиг составляет два дня, а не один.
Круговая цепочка. Календарь