Високосный год каждые. Високосные года - список
Надеюсь, вы отлично встретили новый год, и сейчас у вас отличное праздничное настроение. По крайней мере у меня это именно так - мы не пили никакого алкоголя, и чокнулись в полночь бокалами с водой из пятилитровой канистры, поэтому мы проснулись, погуляли, и тут я вспомнил одно из вчерашних поздравлений с Новым годом:
Желаю, чтобы в конце каждого года ты, вспоминая то, что было за последние 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
Конечно, в большинстве случаев вы можете использовать любой из этих вариантов - в конце концов, при определении количества дней в одном, двух, десяти или ста годах вы вряд ли почувствуете какую-либо разницу.
Пишите, оптимизируйте, улучшайте, тестируйте и считайте производительность - но не забывайте о читаемости исходников ваших программ.
С Новым годом! Удачи, счастья, радости и самосовершенствования в новом году.
Сначала замечание. Не каждый 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 дней отстаёт от григорианского. Если и дальше церковь будет отказываться переходить на общепринятый григорианский календарь, то через несколько сотен лет смещение станет таковым, что, например, Рождество будет отмечаться летом.
Високосный год порождает немало суеверий и слухов, которые сводятся преимущественно к тому, что год этот несчастливый и богат на негативные события. Давайте разберемся, так ли это.
Високосный год: немного истории
Слово «високосный» латинского происхождения, переводится как «второй шестой». Согласно юлианскому календарю, год продолжался 365,25 дней, при этом ежегодно сутки смещались на 6 часов. Такая погрешность могла запутать древних мужей, чтобы этого не произошло, решено было, что каждый четвертый год будет состоять из 366 суток, а февраль станет на день длиннее. Назвали такой год високосным.
На Руси же существовало немало сказаний о появлении високосных годов, каждый из которых считался несчастливым.
Легенды о появлении високосного года на Руси
29 февраля еще называют в честь святого Касьяна Касьяновым днем. Будучи светлым ангелом, соблазнился он уловками нечистой силы и переметнулся на сторону дьявола. Однако впоследствии раскаялся и взмолился Господу о пощаде. Смилостивившись над предателем, Бог приставил к нему ангела. Тот заковал Касьяна в цепи и, по велению свыше, бил его железным молотом в лоб в течение 3 лет, а на четвертый отпускал.
По другой легенде Касьянов день - это день его именин. Однако святой каждый раз мертвецки напивался в течение трех лет и образумился только на четвертый год. Поэтому и полагается ему свой день так редко отмечать.
Есть и третья легенда: идущим по дороге святому Касьяну и Николаю Чудотворцу встретился мужичок. Попросил он помощи, так как застрял его возок в грязи. На что Касьян ответил, что боится он ризу испачкать, а Николай помог. Пришли святые в рай, Бог заметил, что риза Николая грязна и спросил, в чем дело. Рассказал ему Чудотворец, что произошло. Тогда заметил Бог, что у Касьяна риза чистая, спросил, разве не вместе они шли? Касьян ответил, что боялся испачкать одежды. Понял Бог, что лукавит святой и сделал так, что его именины раз в 4 года наступают. А именины Николая за его доброту - в год два раза.
Дурной славой на Руси пользовались високосные года: список преданий не будем продолжать долго, вот один из примеров: честной народ старался завершить все дела до 29 февраля. Многие не решались выйти из дома, солнце в этот день называли «Глазом Касьяна», боялись попасть под солнце, дабы не сглазил их Касьян и не послал болезни и страдания.
Суеверия про високосный год
Как и в стародавние времена, в современном мире часто встречаются приметы и суеверия, не с лучшей стороны характеризующие високосные года (список приведен ниже):
- Нужно повременить с браком в високосный год. Такой брак не будет прочным, молодые будут ссориться, и недавно созданная семья навлечет на себя беды и несчастья.
- Нужно повременить с продажей, покупкой, обменом недвижимости или строительством дома. Сделки, заключенные в этом году, не будут выгодными и неминуемо повлекут разорение сторон. А новое жилье долго не простоит.
- Опасны любые начинания - смена работы, переезд, начало бизнеса. Примета объяснима: наличие 29-го дня в одном из зимних месяцев может характеризовать весь год как не такой, каким он должен быть. Поэтому неуверенному в собственных силах человеку проще отказаться от чего-то нового, чем приложить усилия для начала и развития дела.
- Нельзя беременеть и рожать, так как роды пройдут тяжело, ребеночек может родиться нездоровым. Или жизнь его будет тяжелой и безрадостной.
- Високосный год «косит» людей, то есть забирает их. Принято считать, что смертность повышается каждый четвертый год, хотя статистически это суеверие никак не подтверждается.
- Нельзя грибы собирать, есть их или продавать людям, чтобы не поднять плохого с земли.
- Считается, что високосные года влекут за собой природные катаклизмы и бедствия: пожары, наводнения, засуху.
Какие года високосные? Список високосных годов в 20-м веке
В прошлом столетии, равно как и в 21-м веке, на суеверных людей нагоняли страху високосные года. Список их приведен ниже:
- 1900-е года: -00; -04; -08; -12, и так далее, каждый четвертый год.
- Двухтысячный год тоже был високосным.
Високосные года: список 21 века
И по сей день многие со страхом ждут високосного года, психологически настраивая себя на неприятности и объясняя несчастья наличием лишнего дня в феврале.
Високосные года, список с 2000г.: -04; -08; -12; -16, и далее - каждый четвертый год.
Вместо заключения
Если верить статистике, лишь небольшое количество всех бед и катастроф приходится на високосные года. Существующие по сей день суеверия можно объяснить тем, что люди, пристально следящие за бедами и несчастьями, которые случались в високосные года, придавали происходящему преувеличенное значение исключительно из-за нелестной славы последних.
Людям, которые слишком верят в суеверия високосного года, хочется пожелать обращать больше внимания на позитивные перемены и события. И тогда, может быть, появится реабилитирующий високосные года список добрых примет.
Високосный год, или его еще называют словом «високос», вызывает множество слухов и суеверий, которые сводятся главным образом к тому, что этот год - несчастный и сулит только одни негативные события. В этой статье мы поговорим, насколько справедливы эти мнения.
Немного истории
Слово «високосный» пришло к нам из латинского языка, то есть оно древнего происхождения, а буквальный перевод его звучит как «второй шестой» .
Сообразно юлианскому месяцеслову, Земля проходит свой круг за 365,25 дня, при всем этом ежегодно сутки сдвигались на 6 часов. Подобная погрешность вполне могла запутать древних мужей, и во избежание этого было принято решение, что спустя каждый четвертый год в годовой круг будут внесены еще одни сутки. Соответственно, этот год будет включать в себя 366 суток, и добавлены они будут в самый короткий месяц - февраль, он будет состоять из 29 дней. Для отличия его назвали високосом.
На Древней Руси, в свою очередь, наличествовало множество сказаний о возникновении високосов, причем каждый из них, уже тогда воспринимался, как обязательно несчастливый. Легенды о приходе нового календаря и високоса в нем на Руси отразились и в Святцах. Так, 29 февраля в них посвящено памяти святого Касьяна, а в народе его именуют Касьянов день. Этому дню посвящено несколько легенд и апокрифов (историй, которые не признаны церковью, как подтвержденные и соответствующие тому, что нам известно о Боге). Зато это проливает свет на происхождение плохой репутации високосов.
Согласно этому сказанию, Касьян представляется простому народу не человеком, а ангелом, причем павшим, который когда-то был соблазнен сатаной, вследствие чего и отпал от Бога. Впрочем, в дальнейшем он понял, как ошибся, раскаялся и взмолился Создателю о пощаде. Сжалившись над предателем , Бог, прежде чем принять его обратно, приставил к нему Своего ангела. Небожитель заковал Касьяна в кандалы и, по распоряжению свыше, побивал его металлическим молотом в лоб для вразумления на протяжении 3 лет, а на четвертый - освобождал.
Вторая легенда о Касьяне
По второму сказанию Касьян - это человек, а Касьянов день - это дата его именин. Впрочем, согласно сказанию, тот человек систематически мертвецки упивался три года подряд, но на четвертый образумился, принес покаяние, бросил пагубную привычку, обратился к покаянию и стал святым - стяжал Духа Святого. Поэтому, считал народ, подобает ему свой день так редко отмечать - только 29 февраля.
Третья легенда о Касьяне
Это сказание посвящено путешествующему по земле святому Касьяну и хорошо известного христианам Николаю Чудотворцу. И вот им встречается по пути мужичок. Он попросил их о помощи, поскольку его повозок увяз в грязи. На это Касьян ответствовал , что остерегается он ризу свою чистую испортить, а Николай, не побоявшись грязи, сразу же помог. Вернулись святые в Царствие Божие, и Создатель заметил, что риза у Николая испачкана и вопросил его, с чем это связано.
Поведал ему Святитель, что по дороге случилось. Тогда подметил Господь, что у Касьяна облачение чистое, задал вопрос: неужели не вместе они путешествовали? Касьян ответствовал, что побоялся испачкать одежды. Уразумел Бог, что лукавит Косьма, и устроил таким образом, что его именины у него один раз в 4 года празднуются. А тезоименитство Николая за его кротость - два раза за 365 дней.
В любом случае, как бы оно ни было , високос признавался, как дурной. Поэтому русский суеверный народ старался себя от этого дня как-то обезопасить.
- Стремился закончить все важные дела до 29 числа февраля месяца.
- Некоторые не отваживались выйти из дома.
- 29 февраля, если выходило солнце, его называли Глаз Касьяна или Касьянов глаз. Под солнце тогда старались не попадать, чтобы святой их… не сглазил! И не навлек на бедного человека страданий и болезней.
Как и в старинные времена, в сегодняшнем мире нередко попадаются суеверия и приметы, которые не с лучшей стороны определяют високосные года 21 века. Некоторые из них мы перечислим:
Почему високосный год считается плохим
Подобное отношение вполне объяснимо: появление 29-го дня в феврале характеризует весь год не таким, как прочие, психологически выделяет его из числа прочих. Это может иметь значение для неуверенных в своих силах человеку. Ему будет гораздо проще, сославшись на этот особенный период, отказаться от чего-либо нового, чем затратить силы для саморазвития или начала какого-то дела.
По той же причине проще будет не беременеть, чтобы потом не рожать, ведь повышается страх того, что роды пройдут трудно, малыш может появиться на свет болезненным. А если нет, то вдруг жизнь его окажется безрадостной или тяжелой.
Усматривают наши изобретательные люди и угрозу в самом названии високоса, говоря, что он «кОсит» людей, иначе говоря, забирает их, приводит к смерти. Поэтому и праздник встречают с опаской (или, наоборот, с особым размахом - мало ли кто умрет…). Это очень распространенное мнение, которое пытается проникнуть в статистику. Становится принятым считать, что показатель смертности увеличивается каждый 4-ый год. При этом самой статистикой указанные данные никоим образом не подтверждаются.
Грибы собирать тоже нельзя, а уж тем более их употреблять в пищу или сбывать людям. Нет, не чтобы не отравиться, а чтобы с «плохой землей» к человеку не попало «чего плохого» .
Считается, что високос влечет за собой катаклизмы в природе и всевозможные бедствия: засуху, наводнения, пожары.
Какие года високосные
В прошлом веке, так же как и в нынешнем, такие календарные периоды тоже нагоняли ужас. Список их можно увидеть на изображении или найти в Интернете. Также 2000 год, тот самый миллениум, в свой черед был високосным, открывая целое тысячелетие.
Несмотря на то, что с развитием технологий информация стала доступнее и появилась возможность больше узнавать и расширять кругозор, избавляясь от первобытных страхов, многие продолжают с тревогой ожидать високоса, внутренне настраивая себя на проблемы и беды, а когда те приходят (если приходят), это воспринимается обреченно: ну так ведь високос… Лишний день в феврале. Смертельно!
Существуют специальные календари, которые указывают, когда именно наступает високос. Достаточно внимательно посмотреть на таблицу и найти (или не найти) там актуальные цифры. Достаточно узнать хотя бы один високос, после чего через элементарную арифметику можно будет вычислять их самостоятельно. Допустим, вам интересны високосы в 21 веке. Находите календарь и просматриваете его. Узнав, что 2016 високосный, легко понять, что следующий наступит в 2020 году.
Если доверять статистике, очень небольшое число всех катастроф и бед выпадает на високосы. Имеющиеся в наши дни суеверия можно истолковать тем, что люди, напряженно следившие за несчастьями и бедами, которые происходили високосы, сообщали происходящему гиперболизированное значение только лишь из-за нелестной репутации последних. Лицам, которые чрезвычайно доверяют суевериям о високосах, хочется пожелать больше внимания обращать на положительные события и перемены. И тогда, возможно, наберется восстанавливающий в репутации високосов список благих и радостных примет.
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 лет.