Пишу, по большей части, про историю, свою жизнь и немного про программирование.

Старый новый

Меня удивляет, что некоторые люди не знают что такое «Старый Новый год». Нет, я не про существование самого праздника, а про то как он появился. Я об этом узнал ещё в школе, на уроках истории, и хотя историю я не любил, тем не менее, этот факт запомнил, правда тогда мне рассказали о нём в весьма упрощённой трактовке.

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

Ещё есть високосная секунда, о чём знают горазно меньше людей, но обязаны знать программисты, так как время от времени в минуте бывает 61 секунда. Например, через четыре дня, 30 июня, на часах, которые смогут это показать, будет 23:59:60.

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

Поэтому ему на смену пришёл более точный григорианский календарь, где год составляет 365,2425 суток, а накопившуюся ошибку просто добавили к текущей дате в момент перехода. Даты после принятия григорианского календаря называют «по новому стилю», до — «по старому стилю».

Каждые 128 лет в прежнем календаре накапливалась ошибка в один день. В России переход состоялся в 1918 году и накопившаяся ошибка составила 13 дней, после 31 января в этом году шло сразу 14 февраля, в этот момент и родился «Старый Новый год», который отмечается до сих пор, тем более, что РПЦ новый календарь не приняла и продолжает встречать все праздники по старому календарю.

Для меня в этой истории важно следующее.

Когда я занялся историей своей семьи, быстро столкнулся с датами «по старому стилю». Например, мой прадед Феодор Николаевич Старостин родился 9 августа по старому стилю, что соответствует 22 числу по новому. А вот что было для меня новостью (и что мне не рассказали в школе), что разница между старым и новым стилем не постоянна.

Вообще, это логично, конечно, если об этом задуматься — ведь ошибка копилась со временем. Например, даты от 29 февраля 1900 года до 1 марта 1800 года сдвигаются уже на 12 дней (в Википедии есть табличка). То есть даты рождения моего прапрадеда, Николая Феодоровича Старостина (1870 год) или его супруги, Анастасии (Юстины) Евдокимовны Меркуловой (1873) нужно сдвинуть на 12 дней.

19 комментариев
drucha 2012

после 31 января в этом году шло сразу 14 февраля

Наверное все-таки 14 января

Евгений Степанищев (bolknote.ru) 2012

Комментарий для drucha:

Спасибо, опечатался. Поправил.

Sergey Cheban (sergey-cheban.livejournal.com) 2012

Комментарий для Евгения Степанищева:

после 31 января в этом году шло сразу 14 января

Наверное, не после 31 января, а после 31 декабря. :-)

Кирилл 2012

Комментарий для Евгения Степанищева:

Евгений, у вас было правильно.
Из Википедии: «В России григорианский календарь введён в 1918 году декретом Совнаркома, согласно которому в 1918 году после 31 января следовало 14 февраля.»

Роман Баранов 2012

И ещё вот здесь, кажется, наоборот должно быть:

Даты до принятия григорианского календаря называют «по новому стилю», после — «по старому стилю».

Mopsicus (mopsicus.ru) 2012

блин, не знал про «ошибку» в 13 дней, спасибо )

Евгений Степанищев (bolknote.ru) 2012

Комментарий для Роман Баранов:

И ещё вот здесь, кажется, наоборот должно быть…

О, спасибо, не заметил, глупая ошибка.

Записки (on-trail.livejournal.com) 2012

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

Евгений Степанищев (bolknote.ru) 2012

Комментарий для on-trail.livejournal.com:

Конечно должны. Многие программы считают, что время 23:59:60 — ошибка. А это не так.

Евгений Степанищев (bolknote.ru) 2012

Комментарий для drucha:

Наверное все-таки 14 января

А нет, всё правильно было. Вернул назад.

Кирилл Зорин 2012

Комментарий для Евгения Степанищева:

Евгений, а как вы относитесь к тому, что многие языки программирования и базы данных используют пролептический григорианский календарь и считают, что в 1500 году было 365 дней?

Евгений Степанищев (bolknote.ru) 2012

Комментарий для Кирилл Зорин:

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

Кирилл Зорин 2012

Комментарий для Евгения Степанищева:

Спасибо. Просто мне это всё упрощение как-то не очень нравилось, ведь Джаве и СУБД Оракл ничто не мешает учитывать смену календарей.

zg (zg.livejournal.com) 2012

про 128 дней сказано. но не сказано, что выкидывать высокосный год раз в 128 посчитали неудобным и решили выкидывать 3 раза за 400 лет, т. е. раз в 133 1/3 года. что слегка отличается от 128 лет.

Евгений Степанищев (bolknote.ru) 2012

Комментарий для zg.livejournal.com:

Спасибо за уточнение.

SunChaser (sunchaser.info) 2012

Комментарий для Кирилл Зорин:

Пролептический григорианский разумнее. А астрономический (там, где 2 год до н.э. именуется -1 годом) еще разумнее
Если нужна дата «по местному» есть конвертеры

К тому же, возникает путаница. Италия, например, приняла календарь в 1582, Англия в 1752, Россия в 1918. По кому конвертировать? Класс DateTime в Ruby по-умолчанию по Италии, но не все же мы в Италии

Евгений Степанищев (bolknote.ru) 2012

Оказывается некоторые Линуксы зависли в эту «лишнюю» секунду: http://habrahabr.ru/post/146863/

не HTML 2012

До 1918 года Россия была отсталой страной! :-)

Евгений Степанищев (bolknote.ru) 2012

Комментарий для не HTML:

Отсталой на 13 дней? :)