Какие годы високосные в 21 веке. Почему год назвали високосным и зачем нужен дополнительный день раз в четыре года

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

Желаю, чтобы в конце каждого года ты, вспоминая то, что было за последние 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
Конечно, в большинстве случаев вы можете использовать любой из этих вариантов - в конце концов, при определении количества дней в одном, двух, десяти или ста годах вы вряд ли почувствуете какую-либо разницу.

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

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

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 лет.

2018 год будет невисокосным , потому как дополнительный 366 день, 29 февраля, добавляется только раз в четыре года. Предыдущий високосный год был 2016, а значит следующий будет только в 2020 году.

Все високосные годы приведены в таблице ниже:

Сколько дней в 2018 году

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

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

Так, к примеру:

  • 29 февраля, так называемый Касьянов день, самый плохой день для рождения младенца. Мало того, что рожденному в этот несчастливый день предрекают такую же несчастливую судьбу, так еще и праздновать свой день рождения он может всего один раз в четыре года!
  • Крайне плохой приметой считается играть свадьбу в високосный год. В народе говорят, что такая семья не будет долго жить вместе. скорому распаду семьи, изменам и несчастьям, вплоть до смерти супругов.
  • Если ребенок родился в високосный год, надо как можно быстрей провести обряд крещения. При этом крестными должны быть кровные родственники.

2018 - год вдовы или вдовца

Еще одна народная примета утверждает, что год следующий за високосным будет годом вдовы, а за годом вдовы следует год вдовца. Так как високосный год был 2016, то 2018 - год вдовца . То есть согласно суевериям, в парах которые сыграют свадьбу в течении 2018 года мужчина останется вдовцом.

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

Еще одно "утешение" для склонных к суевериям людей: не существует какой-либо статистики, которая могла бы подтвердить факты о годах вдовы или вдовца. Также против подобных предрассудков выступает и православная церковь - главный залог крепкой семьи это взаимная любовь и уважение.

Как узнать какой год будет високосным

Определить високосный год или нет достаточно просто. Можно, к примеру, запомнить, какой последний год был високосным и отсчитывать периоды по четыре года, ведь именно с такой периодичностью и наступает «високосность» - на каждый четвертый год.

Кроме того, если вы не помните когда был високосный год, есть простое правило, по которым можно вычислить сколько дней в году 365 или 366:

если интересующий вас год можно разделить на 4 без остатка, то год високосный и в нем 366 дней. Все остальные годы имеют продолжительность 365 дней и не являются високосными.

Как и в каждом правиле, здесь есть исключение: года с нулями в конце являются високосными, только если они кратны число 400. То есть 2000 год был високосным, а 1900, 1800, 1700 нет.

2016 год является високосным годом, в котором 366 дней вместо обычных 365-ти. Високосный год был предложен, чтобы синхронизировать календари. А знали ли вы, что не каждый 4-й год является високосным? Почему високосный год считается несчастливым, и какие приметы связаны с этим? Вот несколько фактов, которые вы, возможно, не знали о високосном годе.

1. Високосный год – это год, в котором 366 дней, а не 365 как обычно. Дополнительный день в високосном году добавляется в феврале – 29 февраля (високосный день).

Дополнительный день в високосном году необходим потому, что полный оборот вокруг Солнца занимает чуть больше 365 дней, а точнее 365 дней, 5 часов, 48 минут и 46 секунд.

Когда-то люди следовали календарю из 355 дней с дополнительным месяцем из 22 дней каждые два года. Но в 45 г. До н.э. Юлий Цезарь совместно с астрономом Созигеном решил упростить ситуацию, и был разработан юлианский 365-дневный календарь с дополнительным днем каждые 4 года, чтобы компенсировать дополнительные часы.

Этот день был добавлен в феврале, так как когда-то он был последним месяцев в римском календаре.

2. Эта система была дополнена папой Григорием XIII (который ввел григорианский календарь), который ввел термин «високосный год» и объявил что год, кратный 4-м и кратный 400, но не кратный 100, является високосным годом.

Так по григорианскому календарю 2000 год был високосным, а вот 1700, 1800 и 1900 – не были.

Какие года високосные в 20-м и 21-м веке?

1904, 1908, 1912, 1916, 1920, 1924, 1928, 1932, 1936, 1940, 1944, 1948, 1952, 1956, 1960, 1964, 1968, 1972, 1976, 1980, 1984, 1988, 1992, 1996, 2000, 2004, 2008, 2012, 2016, 2020, 2024, 2028, 2032, 2036, 2040, 2044, 2048, 2052, 2056, 2060, 2064, 2068, 2072, 2076, 2080, 2084, 2088, 2092, 2096

29 февраля — високосный день

3. 29 февраля считается единственным днем, когда женщина может делать предложение о браке мужчине. Эта традиция зародилась в 5-м веке в Ирландии, когда Святая Бригитта пожаловалась Святому Патрику о том, что женщинам приходится слишком долго ждать от поклонников предложения.

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

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

4. По другой версии эта традиция появилась в Шотландии, когда королева Маргарита в возрасте 5-ти лет объявила в 1288 году, что женщина может сделать предложение любому понравившемуся мужчине 29 февраля.

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

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


5. Каждая пятая пара в Греции избегает заключения брака в високосный год, так как считается, что это приносит неудачу.

В Италии считается, что в високосный год женщина становится непредсказуемой, и в это время не нужно планировать важных событий. Так, согласно итальянской поговорке » Anno bisesto, anno funesto «. («Високосный год — обреченный год»).


6. Шансы родиться 29 февраля составляют 1 на 1461. Во всем мире около 5 миллионов людей родились в високосный день.

7. Многие века астрологи считали, что дети, рожденные в високосный день, обладают необычными талантами, уникальной личностью и даже особыми силами. Среди известных людей, родившихся 29 февраля, можно назвать поэта Лорда Байрона, композитора Джоакино Россини, актрису Ирину Купченко.

8. В Гонконге официальный день рождения для тех, кто родился 29 февраля, считается 1 марта в обычные года, а в Новой Зеландии – 28 февраля. Если правильно рассчитать время, то, путешествуя из одной страны в другую, можно отпраздновать самый долгий день рождения в мире.

9. Город Энтони в Техасе, США является самопровозглашенной «мировой столицей високосного года». Здесь ежегодно устраивают фестиваль, где собираются желающие со всего мира, родившиеся 29 февраля.

10. Рекорд наибольшего числа поколений, родившихся в високосный день, принадлежит семье Кео (Keogh).

Питер Энтони Кео (Peter Anthony Keogh) родился 29 февраля 1940 года в Ирландии, его сын Питер Эрик (Peter Eric) родился 29 февраля 1964 года в Великобритании, а внучка Бетани Уэлс (Bethany Wealth) – 29 февраля в 1996 году.

11. Карин Хенриксен (Karin Henriksen) из Норвегии принадлежит мировой рекорд рождения наибольшего числа детей в високосный день.

Ее дочь Хайди (Heidi) родилась 29 февраля 1960 года, сын Олав (Olav) 29 февраля в 1964 и сын Лиф-Мартин (Lief-Martin) 29 февраля в 1968 году.

12. В традиционном китайском, еврейском и древнеиндийском календаре к году добавляют не високосный день, а целый месяц. Его называют «вставным месяцем». Считается, что детей, рожденных в високосный месяц, сложнее воспитывать. Кроме того, считается неудачным начинать серьезные дела в високосный год.


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

По легенде, Касьян был светлым ангелом, которому Бог доверял все планы и намерения. Но затем он перешел на сторону Дьявола, рассказав тому, что Бог намерен свергнуть с небес всю сатанинскую силу.

За предательство Бог наказал Касьяна, приказав бить его по лбу молотком три года, а на четвертый год отпускать на землю, где он совершал недобрые поступки.

Существует множество примет, связанных с високосным годом:

Во-первых, в високосный год нельзя что-либо начинать. Это касается важных дел, бизнеса, крупных покупок, вложений и строительства.


  • Високосный год считается крайне неудачным для заключения брака. С давних времен считалось, что свадьба, сыгранная в високосный год, приведет к несчастливому браку, разводу, изменам, вдовству, или сам брак будет недолговечен.
  • Такое суеверие, возможно, связано с тем фактом, что в високосный год девушки могли свататься к любому понравившемуся молодому человеку, который не мог отказать в предложении. Зачастую такие браки были вынужденными, и потому семейная жизнь не задавалась.
  • Однако стоит разумно относиться к этим приметам и понимать, что все зависит и от самих супругов и от того, как они построят отношения. Если же вы все же запланировали свадьбу, есть несколько способов смягчить «последствия»:
  • Невестам советуют носить длинное платье на свадьбу, прикрывающее колени, чтобы сделать брак долговечным.
  • Свадебное платье и другие свадебные аксессуары не рекомендуется кому-либо отдавать.
  • Кольцо нужно надевать на руку, а не перчатку, так как ношение кольца на перчатке приведет к тому, что супруги будут легкомысленно относиться к браку
  • Чтобы уберечь семью от бед и несчастий, в туфли жениху и невесте клали монетку.
  • Невеста должна сохранить ложку, из которой ел жених, и на 3-й, 7-й и 40-й день после свадьбы жена должна была дать мужу покушать именно из этой ложки.

Что нельзя делать в високосный год?

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

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 лет.