1000 год високосный. Почему бывают високосные годы

Надеюсь, вы отлично встретили новый год, и сейчас у вас отличное праздничное настроение. По крайней мере у меня это именно так - мы не пили никакого алкоголя, и чокнулись в полночь бокалами с водой из пятилитровой канистры, поэтому мы проснулись, погуляли, и тут я вспомнил одно из вчерашних поздравлений с Новым годом:

Желаю, чтобы в конце каждого года ты, вспоминая то, что было за последние 366 if ((year%4 == 0 and year%100 != 0) or (year%400 == 0)) else 365 дней, думал про себя:

Ох, нифига себе, какой был экшен. Обязательно буду рассказывать внукам или напишу об этом потом книгу.


Итак, выше достаточно простой inline-способ определить количество дней в году (переменная year), который, по сути, полностью раскрывает их суть: в григорианском календаре високосными годами считаются те годы, порядковый номер которых либо кратен 4, но при этом не кратен 100, либо кратен 400. Иными словами, если год делится на 4 без остатка, но делится на 100 только с остатком, то он високосный, иначе - невисокосный, кроме случая, если он делится без остатка на 400 - тогда он всё равно високосный.

Например, 2013 год невисокосный, 1700, 1800 и 1900 - опять же невисокосные годы, а вот 2000, 2004, 2008 и 2012 - високосные.

Но что, если мы не помним, сколько дней в високосных (366 дней) и невисокосных (365 дней) годах, или просто хотим написать определение количества дней в году максимально быстро? Можно ли сделать так на Python? Конечно же, можно.

Итак, в Python есть модуль calendar . Он как раз отлично подходит для того, чтобы узнать, является ли тот или иной год високосным (или, например, сколько високосных годов в определённом интервале), определить количество дней в месяце, получить номер дня недели для определённой даты и так далее.

В частности, мы можем получить количество дней в каждом месяце года, и просто сложить.

Функция calendar.monthrange принимает номер года в качестве первого аргумента и номер месяца в качестве второго аргумента. Возвращает номер дня недели первого числа данного месяца и количество дней в данном месяце:

>>> import calendar >>> calendar.monthrange(2013, 1) (1, 31)
Соответственно, мы можем подсчитать общее количество дней для всех 12 месяцев, и получить таким образом количество дней для данного года:

>>> import calendar >>> year = 2013 >>> sum(map(lambda x: calendar.monthrange(year, x), range(1, 13))) 365
Но если подумать о том, как именно выполняется эта строка, становится очевидно, что это решение очень неэффективно, если нужно посчитать количество дней для большого количества годов.

Проверяем с помощью модуля timeit .

На то, чтобы выполнить её 1 миллион раз, требуется 13.69 секунд, если import calendar делается один раз в начале. Если import calendar делается каждый раз, тогда 14.49 секунд.

Теперь попробуем другой вариант. Он требует знания того, сколько дней в високосных и невисокосных годах, но зато он очень короткий:

>>> import calendar >>> year = 2013 >>> 365+calendar.isleap(year) 365
И, как легко догадаться, он уже намного быстрее: 0.83 секунд, включая import calendar, и 0.26 секунд, если import calendar делается один раз в начале.

Давайте также посмотрим, сколько требуется времени самому первому варианту, с «ручным» подходом: 0.07 секунд для 2012 и 2013 и 0.12 секунд для 2000 (думаю, всем понятно, откуда берётся такая разница в скорости для этих годов).

Получается, что это и есть самый быстрый вариант из этих трёх:

>>> import calendar >>> year = 2013 >>> 366 if ((year%4 == 0 and year%100 != 0) or (year%400 == 0)) else 365 365
Конечно, в большинстве случаев вы можете использовать любой из этих вариантов - в конце концов, при определении количества дней в одном, двух, десяти или ста годах вы вряд ли почувствуете какую-либо разницу.

Пишите, оптимизируйте, улучшайте, тестируйте и считайте производительность - но не забывайте о читаемости исходников ваших программ.

С Новым годом! Удачи, счастья, радости и самосовершенствования в новом году.

Все мы знаем о том, что обычный год состоит из 365 дней, однако существует и високосный год, в который включено 366 дней. Он случается раз в четыре календарных года, и месяц февраль в таком году включает в себя на один день больше. Но почему такой год называется високосным, задумываются немногие, и сегодня мы расскажем вам о происхождении данного названия.

Происхождение названия «Високосный» год

Как и в случае со многими другими известными сегодня наименованиями, происхождение «Високосного» года берет свое начало на латыни. Такой год издавна называется «Bis Sextus». Перевод с латыни данного названия означает «Второй шестой».

Стоит отметить, что введено такое исчисление времени было римлянами, и в римском календаре до нашей эры дни считались не в таком представлении, в котором это происходит сегодня. Римляне привыкли исчислять дни в виде количества суток, оставшихся до наступления следующего месяца. Римляне вставляли дополнительный день между 23 и 24 февраля. Само же 24 февраля называлось «сектус», что означало «шестой день до начала марта». В високосный год, когда между 23 и 24 февраля вставлялся дополнительный день, 24 февраля наступало дважды, что называлось «бис сектус», как мы уже отмечали – «Второй шестой» день.

Несложно понять, что «Бис сектус» в славянском понимании можно легко преобразовать в «високосный», ведь данные названия созвучны. Однако в современном григорианском календаре дополнительный день, как известно, вставляется не между 23 и 24 февраля, а после 28 февраля. Так, раз в четыре года, мы имеем возможность наблюдать на настенных календарях, календарях в наших компьютерах и смартфонах, день 29-го февраля.

Зачем нужен високосный год

Разобравшись с тем, почему високосный год так называется, необходимо также провести небольшой экскурс и о том, почему вообще существует такой год, зачем он был введен.

Все мы знаем о том, что обычный год состоит из 365 дней, мы к этому привыкли, и ни на секунду не сомневаемся в данном утверждении. Однако в действительности оно является не совсем верным, поскольку каждый год равен 365,4 дням, то есть 365 дням и 6 часам. Разумеется, такое исчисление времени является весьма неудобным, и оно непременно приводит к определенным смещениям в восприятии потока времени людьми. Именно поэтому учеными астрономами и было принято решение исчислять каждый кратный четырем год в объеме 366 дней (используя 4 отрывка по 6 часов от других годов), а все остальные – по 365 дней ровно.

sharky:
25.03.2013 в 16:04

а с какого перепугу 1900 не является високосным? Високосный год наступает каждые 4 года, т.е. если на 4 делится - это високосный год. И больше не надо никаких делений на 100 или 400.

Вопросы задавать это нормально, а вот прежде чем утверждать что-то изучите матчасть. Земля делает оборот вокруг солнца за 365 суток 5 часов 48 минут 46 секунд. Как видите остаток не ровно 6 часов, а на 11 минут 14 секунд меньше. Это значит, что делая високосный год мы прибавляем лишнее время. Где-то за 128 лет накапливаются лишние сутки. Поэтому каждые 128 лет в одном из 4-х летних циклов високосный год делать не надо, чтобы избавиться от этих лишних суток. Но чтобы упростить, високосным не делают каждый 100-й год. Идея понятна? Хорошо. А как же тогда быть дальше, ведь лишний день прибавляется каждые 128 лет, а урезаем его каждые 100 лет? Да, мы отрезаем больше положенного, и это нужно когда-то вернуть.

Если первый абзац понятен и все еще интересно, тогда читаем дальше, но будет сложнее.

Итак за 100 лет набегает 100/128=25/32 суток лишнего времени (это 18 часов 45 минут). Мы не делаем високосный год, то есть отнимаем одни сутки: получаем 25/32-32/32=-7/32 суток (это 5 часов 15 минут), то есть отнимаем лишнее. Через четыре цикла по 100 лет (через 400 лет) мы отнимем лишнего 4*(-7/32)=-28/32 суток (это минус 21 час). На 400-й год мы делаем високосный год, то есть прибавляем сутки (24 часа): -28/32+32/32=4/32=1/8 (это 3 часа).
Мы делаем каждый 4 год високосным, но при этом каждый 100 год не високосным и при этом каждый 400 год високосным, но все равно каждые 400 лет прибавляются лишние 3 часа. Через 8 циклов по 400 лет, то есть через 3200 лет накопится лишних 24 часа, то есть одни сутки. Тогда добавляется еще одно обязательное условие: каждые 3200-й год не должен быть високосным. 3200 лет можно округлить до 4000, но тогда опять придется играться с добавленными или урезанными сутками.
3200 лет не прошло, так что об этом условии, если его таким сделают, еще не говорят. А вот 400 со дня утверждения Григорианского календаря лет уже прошло.
Года кратные 400 всегда високосные (пока что на сегодняшний день), остальные года кратные 100 не високосные, остальные года кратные 4 високосные.

Приведенный мною расчет показывает что при нынешнем состоянии ошибка в одни сутки накопиться за 3200 лет, но вот что об этом пишет википедия:
«Ошибка в одни сутки по сравнению с годом равноденствий в григорианском календаре накопится примерно за 10 000 лет (в юлианском - примерно за 128 лет). Часто встречающаяся оценка, приводящая к величине порядка 3000 лет, получается, если не учитывать, что со временем изменяется количество суток в тропическом году и, кроме того, изменяется соотношение между продолжительностями времён года». Из той же википедии формула продолжительности года в сутках с дробями неплохо обрисовывает картину:

365,2425=365+0,25-0,01+0,0025=265+1/4-1/100+1/400

Год 1900 високосным не был, а 2000 был, причем особенный, потому что такой високосный бывает раз в 400 лет.

Для большинства людей, верящих в приметы, очень важно знать наперёд все самые важные сведения о каком-нибудь временном промежутке. В особенности, это касается високосности того или иного года, так как с отмеченной ситуацией связываются некоторые предостережения. Согласно народному толкованию, именно в периоды, продолжающиеся не привычные 365, а 366 дней, стоит опасаться различных катаклизмов, конфликтов, войн и прочей напасти. Наверное, именно по этой причине вопрос, високосный 2019 год или нет, считается настолько актуальным.

Понятие високосного года

Все, кто действительно верить в разрушающую силу дополнительного дня в феврале, могу вздохнуть с облегчением – 2019 год состоит из стандартного количества дней (365).

Впервые само понятие високосного года появилось ещё во времена Юлия Цезаря. Великий правитель распорядился, чтобы лучшие астрономы того времени ввели понятие астрономического года и определили количество дней, из которых он состоит. По прошествии некоторого времени, результат был готов – год формируется из 365 дней и 6 дополнительных часов. Получается, что каждый последующий период должен был смещаться на 6 часов вперёд. Для решения проблемы выравнивания временных рамок, решено ввести понятие високосного года – промежуток времени, в котором будет числиться на 1 день больше, чем в стандартном году. Цезарю такая идея пришлась по душе, и с тех самых пор каждый четвёртый год считается «особенным».

Так как последним високосным годом был 2016, на следующий раз такая же участь ждёт 2020 год. С одной стороны, ничего плохого в дополнительных 24 часах в году быть не может, не с другой, невозможно представить столь обширное количество суеверий, придуманных на пустом месте. Что же кроется за всеми этими наставлениями и стоит ли вообще в них верить?

Приметы о високосном годе

Если рассмотреть ситуацию с логичной точки зрения, отмеченный временной промежуток отличается от типичного только 1 дополнительным днём. В народе же подобному исходу придаётся крайне важное значение. Ранее 29 февраля носило названием дня Касьяна – несчастливые сутки, когда с человеком случаются различные неприятности.

Согласно народным верованиям, в високосный год нельзя начинать что-то новое, ведь должного результата всё равно не добиться. Любая новизна в обозначенном году становится причиной негативного итога и невзгод. На деле, в период, исчисляемый 366 днями, не стоит планировать свадьбу, переезжать, менять работу и даже заводить домашних животных. Весь этот перечень дел рекомендуется отложить до следующего года. Также в этот час не следует начинать стройку, отправляться в длительные поездки и стричь волосы при беременности до самих родов.

На самом деле, каждый решает сам, стоит ли верить в перечисленные предостережения. Принимать все приметы слишком близко к сердцу тоже не следует, иначе придётся каждый 4 год собственной жизни «ходить на цыпочках». Просто раньше, когда люди не могли объяснить причину какого-то катаклизма или несчастья, високосный год становился главным виновником всех бед. На деле же катастрофы случаются постоянно, не так ли?

Свадьба в високосном году

Отдельная тема для обсуждения – запрет на бракосочетание в году, состоящем из 366 дней. Согласно приметам, такой союз 100% окажется несчастливым и в дальнейшем обязательно распадётся. По этой причине большинство современных пар, решивших узаконить отношения, оттягивают сей процесс до более стандартного временного промежутка.

На самом деле подобная примета слишком уж противоречива. В былые времена високосный год назывался периодом невест. Согласно древнему обычаю, у девушек появлялась возможность самим посвататься к понравившемуся парню, и самое интересное, что тот не мог отказаться. Пользуясь подобной возможностью, самые неприметные невесты выбирали себе в женихи наиболее обеспеченных и видных кавалеров, в которых обычно тайно были влюблены. Именно из-за неравноправья пары подобные союзы очень скоро распадались, так как счастья тем не было вовсе. Посему и возникло поверье, что женитьба в високосный год – плохая затея.

Священнослужители, проводящие обряд венчания, настаивают на том, что благополучие в паре полностью зависит от самих молодожёнов. И никакой високосный год или свадьба в неподходящее время не могут нарушить гармонию между будущими супругами, если такова существует.

Чего следует ожидать от 2019 года?

Так как описываемый период не является високосным, даже те, кто свято верит в связанные с этим временем приметы, могут вздохнуть с облегчением – предстоящие 12 месяцев пройдут в относительном спокойствии. По словам астрологов, в 2019 году удастся уладить множество конфликтных ситуаций, наконец-то попрощаться с кризисом, и наладить новые контакты. Связано это с владычицей описываемого периода – Жёлтой Свиньёй, являющей символом дружелюбия, радости, спокойствия и благоразумия.

В любовной сфере 2019 год считается прекрасным периодом для создания семьи, рождения ребёнка, налаживания романтической связи или восстановления дружеских отношений. Многие одинокие сердца получат шанс отыскать судьбу и обрести долгожданное счастье.

Звёзды указывают на то, что 2019 год считается идеальным периодом для старта собственного дела или продвижения по карьерной лестнице. Свинья символизирует веру в собственные силы, целеустремлённость и бесконечную надежду в лучшее. Тем, кто будет проявлять отмеченные качества, удача обеспечена на весь год. Многие смогут реализовать собственный потенциал и достичь намеченных вершин. Правда, следует понимать, что рано или поздно настанет время, когда придётся отвечать за каждое принятое решение, каким бы оно ни было.

2019 год не будет разительно отличаться от 2018 или 2017, ведь в нём насчитывается стандартное количество дней – 365. Проще говоря, в описываемом периоде можно смело выходить замуж, жениться, переезжать на новое место жительства, путешествовать, принимать нестандартные решения и не бояться дурного влияния извне. Небольшое уточнение – каждый год, будь он високосным или нет, несёт с собою не только радость и беззаботность, но и жизненные невзгоды и трудности. Чтобы справиться с любыми напастями, достаточно всегда оставаться в хорошем расположении духа и озарять этот мир лучезарной улыбкой.

Сначала замечание. Не каждый 4-й год является високосным. Почему - объясним позже.

В обычном году 365 дней. В високосном году 366 дней - на день больше, за счёт добавления дополнительного дня под числом 29 к месяцу февралю, в результате чего родившиеся в этот день испытывают определённые затруднения с празднованием своего дня рождения.

Год - это время, за которое планета Земля совершает один оборот вокруг Солнца по отношению к звёздам (видимым образом измеряется как интервал между двумя последовательными прохождениями Солнца через точку весеннего равноденствия).

Сутки (или часто в обыденной речи - день) - это время, за которое Земля совершает один оборот вокруг своей оси. Как известно, в сутках 24 часа.

Оказывается, что в году не умещается ровное количество дней. В году 365 дней, 5 часов, 48 минут и 45,252 секунды. Если год принять равным 365 дням, то получится, что Земля в своём движении по орбите не "дотянет" до точки, в которой "замыкается круг", т.е. до неё надо пролетель по орбите ещё 5 часов, 48 минут и 45,252 секунды. Эти лишние примерно 6 часов за 4 года как раз соберутся в одни дополнительные сутки, которые ввели в календарь для ликвидирования отставания, получив каждый 4-й год високосным - на день длиннее. Сделал это 1 января 45 года до н. э. римский диктатор Гай Юлий Цезарь, и календарь с тех пор стал называться юлианским . Справедливости ради, надо сказать, что Юлий Цезарь лишь властными полномочиями ввёл новый календарь, а рассчитали и предложили его, конечно, астрономы.

Русское слово "високосный" происходит от латинского выражения "bis sextus" - "второй шестой". Древние римляне считали дни месяца, оставшиеся до начала следующего месяца. Так день 24 фефраля был шестым до начала марта. В високосный год между 24 февраля и 25 февраля вставлялся дополнительный, второй (bis sextus) шестой день. Позже этот день стал прибавляться к концу месяца, 29 февраля.

Итак, по юлианскому календарю каждый 4-й год является високосным.

Но нетрудно заметить, что 5 часов, 48 минут и 45,252 секунд не есть точно 6 часов (не хватает 11 минут 14 секунд). Из этих 11 минут и 14 секунд за 128 лет "набежит" ещё один лишний день. Было это замечено из астрономиченских наблюдений по смещению дня весеннего равноденствия, относительно которого расчитываются церковные праздники, в частности Пасха. К 16 веку отставание было в 10 дней (сегодня уже 13 дней). Чтобы его ликвидировать, Папа Григорий XIII провёл реформу календаря (григорианский календарь), согласно которой не каждый 4-й год был високосным. Не были високосными года, кратные ста, т. е. оканчивающиеся двумя нулями. Исключения составляли только года, делящиеся на 400.

Итак, високосные года - это года: 1) делящиеся на 4, но не на 100 (например, 2016, 2020, 2024),

Заметим, что Русская православная церковь отказалась переходить на григорианский календарь и живёт по старому, юлианскому календарю, который на 13 дней отстаёт от григорианского. Если и дальше церковь будет отказываться переходить на общепринятый григорианский календарь, то через несколько сотен лет смещение станет таковым, что, например, Рождество будет отмечаться летом.