Все мы пользуемся шкалой времени UTC в том или ином виде, ибо именно по ней выставляется время в каждом часовом поясе. В её основе лежит время TAI (усреднённое время 450 атомных часов, расположенных по всему миру), что по сути делает эту шкалу максимально точным способом подсчёта времени. Однако есть неприятный нюанс: длительность солнечных суток (одного оборота Земли вокруг своей оси) не равна 24-м часам (86400 секунд по атомным часам; запомните эту цифру, она нам ещё пригодится). Тем не менее наступление следующего календарного дня мы определяем именно как интервал времени в 24 часа.
Предположим, что время полного оборота Земли вокруг своей оси на одну секунду больше, чем 24 часа по атомным часам. Пусть в первый день рассвет наступает в 6 утра. На второй день рассвет наступит в 06 часов 00 минут 01 секунду (давайте для простоты забудем о наклоне земной оси и прочих сложностях, которые могут помешать нам ухватить суть проблемы). На третий день рассвет наступит в 06:00:02. Через какое-то время мы ошибёмся ровно на 12 часов: заход солнца случится в 6 утра.
К счастью, средняя длительность солнечных суток в 2000-м году была равна 86400.002 секунды (убегание всего на 2 миллисекунды в год), поэтому расхождение накапливается не так быстро, но тем не менее оно есть. И если вам показалось, что всё это очень похоже на "проблему" с високосным годом, то вы чертовски правы. Только там всё происходит из-за вращения Земли вокруг солнца, которое не равно 365-и дням, а тут из-за вращения Земли вокруг своей оси, которое не равно 24-м часам (два независимых вращения, не будем их путать!).
Проблему сдвига времени года решил григорианский календарь 15 октября 1582 года, который ввёл дополнительные сутки в феврале, а проблему времени суток решили введением дополнительной секунды в 1972-м году, которая также называется високосной секундой или секундой координации. Если говорить совсем грубо, то когда уход атомных часов приближается к секунде, считают, что некий заранее заданный день длился на секунду дольше (то есть 86401 секунду), и эта секунда добавляется ровно в момент перехода к следующему дню. То есть после 60-й секунды отсчитывается 61-я секунда, и только потом первая секунда следующего дня. И если вы подумали, что я вас обманываю, то вот вам картинка
Я буду называть эти дни високосными, по аналогии с високосным годом (надеюсь, я достаточно доходчиво объяснил, что это, хоть и фундаментально похожие, но всё-таки разные понятия). Таким образом убивают двух зайцев: UTC тикают ровно со скоростью атомных часов, и при этом дни, подсчитанные по UTC, не убегают вперёд.
Нужно понимать, что если бы мы писали время как число секунд, прошедших с какой-то даты, у нас бы вообще не было никакой проблемы и никаких дополнительных секунд
- Простите, который сейчас час?
- 1 миллиард 704 миллиона 067 тысяч 200 секунд
Однако мы хотим в течение дня отсчитывать время именно как количество часов и минут и вот тут как раз и возникают сложности. В предположении, что день длится 86400 секунд, достаточно было поделить полное число прошедших секунд на 86400 и мы получали количество дней, которые потом переводили в дату. Но теперь нам нужно учитывать, что какие-то дни длились 86400 секунд, а какие-то - 86401 секунду.
Григорианский календарь хорош тем, что даёт магическую формулу, которая заранее говорит, в феврале какого года появится дополнительный день. А вот с дополнительными секундами получилось сложнее. Для них не придумали никакой заранее заданной формулы: земля вращается неравномерно, иногда ускоряется, иногда замедляется. И да, допускается ситуация, когда какой-то день надо будет сделать короче на 1 секунду. Собирается международный комитет и на основании наблюдений за вращением Земли выносит решение: в этом году мы удлиним/укоротим такой-то день на одну секунду. С 1972-го по 2024-й год секунды добавляли 27 раз и ни разу не убирали.
Уверен, что вам вся эта ситуация не понравилась. Я думаю, что когда вы впервые узнали про григорианский календарь, он вам тоже вряд ли понравился. Ну правда, чтобы пересчитать дни в годы уже недостаточно просто сделать деление с остатком на 365, вместо этого приходится использовать более сложный алгоритм. Православная церковь так до сих пор и живёт по юлианскому календарю, и у них сегодня 15 сентября. Не удивительно, что у високосных секунд сразу образовалась партия противников. Против високосных секунд выступили конечно же механические часы, они к такому пердимоноклю были не готовы. Правда механические часы уходят от точного времени гораздо быстрее, чем 2 миллисекунды в год, поэтому их мнением можно, наверное, пренебречь. Выступили авторы устройств, которые не могут получать данные об изменениях времени из интернета. Опять же не очень понятно почему, ведь обычно время им требуется лишь для координации собственных процессов, да и опять же, часы компьютера могут уходить на секунды в день и уж точно не должны страдать от этого. Самое интересное - это протест людей, которые синхронизируют время своих устройств через интернет. Чисто по человечески их можно понять: им нужно переписать алгоритмы пересчёта секунд в дату и отслеживать введение новых високосных секунд. Линюксовая программа date, например, до сих пор не знает, что 31-го декабря 2016-го года последняя минута длилась 61 секунду.
$ date -d"2016-12-31 23:59:60 UTC" +%s
date: invalid date ‘2016-12-31 23:59:60 UTC’
Яйцеголовые создатели ГЛОНАСС сели в лужу с написанием правильного кода (а ГЛОНАСС как раз использует UTC): их навигационная система не работала в течение суток в ночь с 30 июня на 1 июля 1997 года. 1 января 2009 года сел в лужу национальный метрологический институт России (ВНИИФТРИ) (смешно, да?) со своими ntp-серверами. А инженеры меты Oleg Obleukhov и Ahmad Byagowi написали длинную статью о вреде этих високосных секунд, ведь они могут привести к движению в прошлое! Ну да, ну да... Мы все помним эпохальную статью о криворуких **ланах и печенье "Анёла". Всех этих людей понять можно, простить - нет.
Но если вы осознали всю мощь и величие дополнительных секунд, то вот вам загадка для друзей
Мы в далёком прекрасном прошлом. 31-е декабря 2016-го года. Мы встречаем новый год в Лондоне. Да, там, где рыба, чипсы, чай, дрянная еда, погода еще хуже, Мэри, етить её, Поппинс (с). Лондон! На часах 23:59:50. Мы подняли бокалы. Сколько времени осталось до наступления нового года?
Комментарии (19)
Einherjar
28.09.2024 16:36Православная церковь так до сих пор живёт по юлианскому календарю, и у них сегодня 14 августа
В цивилизованных странах уж сто лет как по новоюлианскому, который к слову чуточку точнее грегорианского, но в обозримом будущем с ним +- совпадает, и 28 сентября у них сейчас.
ilekarev
28.09.2024 16:36В цивилизованных? :)
Вообще гугление показало, что новоюлианский календарь до 28 февраля 2800 года полностью совпадает с григорианским. Поэтому какая нам сейчас разница? За такое количество лет может ещё с десяток календарей придумают
Balek
28.09.2024 16:36Средняя длительность солнечных суток 2000 года была равна 86400,002 секунды, то есть убегание всего на 2 миллисекунды в год
А почему секунду не определят так, чтобы в среднем сутки были 24 часа? Или длительность суток настолько нестабильна, что это нельзя сделать?
SeroBuro
28.09.2024 16:36+1Не стабильна. Мы то поближе к Юпитеру, то вокруг нас максимально пусто, а все это - сложные взаимодействия гравитационных полей. Которые нас то чуть тормозят, то чуть разгоняют. И которые для трех-то тел посчитать проблематично точно, что уж о Солнечной системе. Например, этим летом уже могли то ли добавить, то ли убавить секунду, если смотреть на примерную историю и периодичность високосных секунд. Но пока это не сделали, так как вот в этот раз пока не хватило накопившейся погрешности.
Еще прикол, что, по хорошему, спутниковые навигационные системы имеют информацию об уже случившехся високосных секундах. В так называемых Альманахах. И передают эти данные в приёмники спутникового сигнала. А те, в свою очередь, прибавляют все накопившиеся секунды ко времени TAI, и в нужный момент рапортуют ту самую 60-ю секунду. Но это по хорошему.
А по плохому, просто выдают полученный текущий код времени TAI или GPS. Которые отстают от UTC на эти самые вискосные секунды. А теперь, внимание, вопрос. Откуда разработчику некоторой системы, знающей время только по спутнику, узнать, сколько секунд то надо накинуть, если ему доступ к Альманаху не дали.
И вот такой разработчик сейчас, например, вшил эти набежавшие 19 секунд просто как константу в код этой системы. И возможно на Новый Год потребуется апдейт системы, только чтобы ручками в коде добавить или убавить секунду...
SeroBuro
28.09.2024 16:36+2Ну и секунда определяется не от времени в сутках, а очень тесно завязана на СИ. Полагаю, это удачное совпадение, что в сутках число секунд, удобно кратное 24 часам. А само по себе 24 часа пошло из Египта. По идее, это косвенно повлияло и на определение первоначальное секунды. А потом уже его дотянули до определения через колебания в ядрах атомах. В любом случае, все даже СИшные единицы - условности, и их прелесть лишь в том, что в свое время их четко систематизировали и весьма жёстко друг с другом связали. Плюс в физике множество особых констант, которые, по сути, связывают численно, количественно и качественно те или иные физические характеристики. Например, скорость света, по сути, связывает время и расстояние.
Хотя даже она меняется по мере растяжения Вселенной. Не исключено, что и другие подобные константы завязаны на метрику Вселённой. Вообще, привычка все исчислять дискретно - наше когнитивное упрощение описания окружающего мира. Всё более глубокое погружение в законы мироздания демонстрирует, что все, скажем так, "плавно" и "тягуче". Даже кварки суть не отдельно существующие дискретные объекты
askv
28.09.2024 16:36+1Например, скорость света, по сути, связывает время и расстояние. Хотя даже она меняется по мере растяжения Вселенной.
Насколько я понял, нет, не меняется. Иначе бы не было смысла в масштабировании Вселенной.
utherbit
28.09.2024 16:36+1Дополню цитатой со страницы на википедии на которую так же ссылался автор
В ноябре 2022 года на 27-й Генеральной конференции по мерам и весам было решено отказаться от високосной секунды к 2035 году или раньше.
За 50-100 лет, время может сдвинуться на 1 минуту, так что можно особо не торопиться с решением. Наверняка мы успеем что то придумать раньше, чем первые петухи будут просыпаться в полдень.
Vpan
28.09.2024 16:36Високосные дни, на самом деле, появились не в григоринском календаре (16 век нашей эры), а в юлианском (1 век нашей эры) и это то новшество, которое отличает юлианский календарь от старого римского. При папе Григории усложнили правило расчета года, в который нужно ввести високосный день. То есть "проблема была решена" в 1 веке, а в 16 веке "уточнили решение" (пишу в кавычках, потому что ни там, ни там проблема не решена окончательно: даже по григорианскому календарю разница набежит, но уже в масштабе тысячелетий).
me21
28.09.2024 16:36А её окончательно и нельзя решить, потому что в конечном счёте период оборота Земли вокруг Солнца так же неравномерен, как и вокруг своей оси.
CBET_TbMbI
28.09.2024 16:36+3Непонятно, что хотел сказать автор статьи.
Для обзорной статьи не хватает сравнения подходов с високосной секундой и без неё. Да и информации не густо.
Для высказывания авторского мнения не хватает этого самого авторского мнения.
Прослеживается какой-то трорллинг, но непонятно в чей адрес.
Fil
28.09.2024 16:36длительность солнечных суток (одного оборота Земли вокруг своей оси)
Предположим, что время полного оборота Земли вокруг своей оси на одну секунду больше, чем 24 часа
Полный оборот вокруг своей оси Земля делает за звёздные сутки ≈ 23 часа 56 минут 4 секунды
askv
у них сегодня 15 сентября (тепловато, правда, для сентября)
RoasterToaster
Для 28 сентября пожалуй тоже. Секунды у них там не бьются. Тут у осени месяц куда то исчез.
herase Автор
Спасибо за исправление, гугл, сволочь, подвёл) Я скорректировал текст, чтобы не вводить в заблуждение читателей.