Тест: насколько хорошо вы понимаете время?
Эйнштейн доказал, что время относительно, а программисты — что оно может закончиться.
Кадр: фильм «Интерстеллар»
Эйнштейн доказал, что время относительно, программисты — что оно может закончиться в 2038 году, а Хайдеггер выдвинул гипотезу, что время — это мультифеномены бытия.
Кажется, что правильно посчитать время — тривиальная задача даже для начинающего программиста. Но что, если при этом нужно учесть часовой пояс, переход на летнее время, особенности местного календаря и даже вращение планеты? Проверьте свои знания на десяти обманчиво простых вопросах.
Начать тест |
Окей, начнём с простого: сколько времени в сутках?
В бытовой жизни — да, 24 часа, но когда речь идёт о стандартах времени, начинаются различия. Раз в полтора-два года 30 июня или 31 декабря день может закончиться вот так: 23:59:60. Это дополнительная, или високосная, секунда, которая нужна для того, чтобы сравнять фактическое время вращения Земли со стандартом UT и UTC.
Если эту секунду не добавить, могут проявиться разные сбои. Например, в 2016 году 31 декабря была добавлена високосная секунда и на серверах Cloudflare произошла ошибка — DNS-прокси переключился на отрицательное значение, и это привело к массовому сбою.
Поэтому от високосной секунды планируют отказаться после 2035 года, что может снова привести к ошибкам — тот же ГЛОНАСС её учитывает и без неё может засбоить.
Если эту секунду не добавить, могут проявиться разные сбои. Например, в 2016 году 31 декабря была добавлена високосная секунда и на серверах Cloudflare произошла ошибка — DNS-прокси переключился на отрицательное значение, и это привело к массовому сбою.
Поэтому от високосной секунды планируют отказаться после 2035 года, что может снова привести к ошибкам — тот же ГЛОНАСС её учитывает и без неё может засбоить.
Верно! Раз в полтора-два года 30 июня или 31 декабря день может закончиться вот так: 23:59:60. Это дополнительная, или високосная, секунда, которая нужна для того, чтобы сравнять фактическое время вращения Земли со стандартом UT и UTC.
Если эту секунду не добавить, могут проявиться разные сбои. Например, в 2016 году 31 декабря была добавлена високосная секунда и на серверах Cloudflare случилась ошибка — DNS-прокси переключился на отрицательное значение, и это привело к массовому сбою.
Поэтому от високосной секунды планируют отказаться после 2035 года, что может снова привести к ошибкам — тот же ГЛОНАСС её учитывает и без неё может засбоить.
Если эту секунду не добавить, могут проявиться разные сбои. Например, в 2016 году 31 декабря была добавлена високосная секунда и на серверах Cloudflare случилась ошибка — DNS-прокси переключился на отрицательное значение, и это привело к массовому сбою.
Поэтому от високосной секунды планируют отказаться после 2035 года, что может снова привести к ошибкам — тот же ГЛОНАСС её учитывает и без неё может засбоить.
Дальше |
Проверить |
Узнать результат |
В сутках ровно 24 часа или могут быть ещё варианты?
Точно. Всё дело в переводе часов на летнее и зимнее время, когда происходит прибавление одного часа весной и убавление его осенью.
Регулирование перехода различается от страны к стране — в США и Европе его всё ещё используют, в России, Азии и Африке отказались либо не использовали вообще. Всё это нужно учитывать при написании кода, иначе возможны ошибки и сбои.
Регулирование перехода различается от страны к стране — в США и Европе его всё ещё используют, в России, Азии и Африке отказались либо не использовали вообще. Всё это нужно учитывать при написании кода, иначе возможны ошибки и сбои.
Не-а. Перевод часов на летнее и зимнее время — это прибавление часа весной и убавление его осенью. Из-за этого количество времени в сутках может меняться.
Регулирование перехода различается от страны к стране — в США и Европе его всё ещё используют, в России, Азии и Африке отказались либо не использовали вообще. Всё это нужно учитывать при написании кода, иначе возможны ошибки и сбои.
Регулирование перехода различается от страны к стране — в США и Европе его всё ещё используют, в России, Азии и Африке отказались либо не использовали вообще. Всё это нужно учитывать при написании кода, иначе возможны ошибки и сбои.
Дальше |
Проверить |
Узнать результат |
На летнее и зимнее время переходит вся страна?
Верно. Мало того что отношение к переходу на зимнее время может различаться даже в странах, находящихся в одном полушарии, так ещё и внутри стран не все «смогли договориться».
Например, в США есть резервация Навахо-Нейшен, где часы переводят, а внутри неё есть ещё одна резервация, Хопи, где стрелки никто не трогает. В итоге в этих местах время будет различаться.
Например, в США есть резервация Навахо-Нейшен, где часы переводят, а внутри неё есть ещё одна резервация, Хопи, где стрелки никто не трогает. В итоге в этих местах время будет различаться.
Всё опять сложно. Мало того что отношение к переходу на зимнее время может различаться даже в странах, находящихся в одном полушарии, так ещё и внутри стран не все «смогли договориться».
Например, в США есть резервация Навахо-Нейшен, где часы переводят, а внутри неё есть ещё одна резервация, Хопи, где стрелки никто не трогает. В итоге в этих местах время будет различаться.
Например, в США есть резервация Навахо-Нейшен, где часы переводят, а внутри неё есть ещё одна резервация, Хопи, где стрелки никто не трогает. В итоге в этих местах время будет различаться.
Дальше |
Проверить |
Узнать результат |
Окей, с часами и летним временем всё понятно. А что с секундой — это постоянная величина или она тоже может меняться?
Не-а. В отличие от суток, с секундой всё в порядке — это постоянная единица измерения времени, которая равна 9 192 631 770 периодам излучения атома цезия-133.
Секунды входят в Международную систему единиц — это научные стандарты, которые используются в технике и исследованиях. Секунду можно дробить на сотые и тысячные доли, но сама она всегда длится одно и то же время.
Секунды входят в Международную систему единиц — это научные стандарты, которые используются в технике и исследованиях. Секунду можно дробить на сотые и тысячные доли, но сама она всегда длится одно и то же время.
Да! В отличие от суток, с секундой всё в порядке — это постоянная единица измерения времени, которая равна 9 192 631 770 периодам излучения атома цезия-133.
Секунды входят в Международную систему единиц — это научные стандарты, которые используются в технике и исследованиях. Секунду можно дробить на сотые и тысячные доли, но сама она всегда длится одно и то же время.
Секунды входят в Международную систему единиц — это научные стандарты, которые используются в технике и исследованиях. Секунду можно дробить на сотые и тысячные доли, но сама она всегда длится одно и то же время.
Дальше |
Проверить |
Узнать результат |
Можно ли синхронизировать компьютер или сервер с атомными часами напрямую?
Да, это вполне реально. Все устройства в Сети синхронизируются по протоколу Network Time Protocol (NTP). Внутри него — три класса серверов, первый из которых синхронизируется напрямую с атомными часами и определяет время с точностью до одной триллионной секунды.
Он передаёт данные на серверы «пониже» — на них уже не такая высокая точность. Например, один из самых популярных серверов такого типа — Stratum 3 — показывает время с точностью лишь до секунды.
Если для вашего проекта нужна точность до одной тысячной секунды, то придётся обращаться к владельцам сервера первого уровня напрямую либо создавать свои атомные часы.
Он передаёт данные на серверы «пониже» — на них уже не такая высокая точность. Например, один из самых популярных серверов такого типа — Stratum 3 — показывает время с точностью лишь до секунды.
Если для вашего проекта нужна точность до одной тысячной секунды, то придётся обращаться к владельцам сервера первого уровня напрямую либо создавать свои атомные часы.
Похоже, вы ни разу не работали с протоколом Network Time Protocol (NTP), серверы которого синхронизируют все устройства в интернете.
Внутри него — много классов серверов, первый из которых синхронизируется напрямую с атомными часами и определяет время с точностью до одной триллионной секунды.
Правда, таких серверов очень мало и подключиться к ним напрямую не получится — обычно они общаются только с серверами следующего за ними уровня. Наиболее популярный тип «машин времени» — Stratum 3 — показывает время с точностью до секунды.
Если для вашего проекта нужна точность до одной тысячной секунды, то придётся обращаться к владельцам сервера первого уровня напрямую либо создавать свои атомные часы.
Внутри него — много классов серверов, первый из которых синхронизируется напрямую с атомными часами и определяет время с точностью до одной триллионной секунды.
Правда, таких серверов очень мало и подключиться к ним напрямую не получится — обычно они общаются только с серверами следующего за ними уровня. Наиболее популярный тип «машин времени» — Stratum 3 — показывает время с точностью до секунды.
Если для вашего проекта нужна точность до одной тысячной секунды, то придётся обращаться к владельцам сервера первого уровня напрямую либо создавать свои атомные часы.
Дальше |
Проверить |
Узнать результат |
Теперь попробуем охватить более глобальные вещи. На Земле существует только 24 часовых пояса?
Не-а. Кроме географии есть ещё и административное деление, когда время устанавливают сами люди, исходя из своих целей и интересов. Сейчас таких «частных» часовых поясов более 300 штук.
Наиболее ярко это проявилось в островных государствах Тихого океана, где время может быть одинаковым, но при этом даты разные, — какие-то острова стремятся остаться в «прошлом», другие — в «будущем». Из-за этого линия перемены дат сильно изломана.
Наиболее ярко это проявилось в островных государствах Тихого океана, где время может быть одинаковым, но при этом даты разные, — какие-то острова стремятся остаться в «прошлом», другие — в «будущем». Из-за этого линия перемены дат сильно изломана.
Верно. Кроме географии есть ещё и административное деление, когда время устанавливают сами люди, исходя из своих целей и интересов. Сейчас таких «частных» часовых поясов более 300 штук.
Наиболее ярко это проявилось в островных государствах Тихого океана, где время может быть одинаковым, но при этом даты разные, — какие-то острова стремятся остаться в «прошлом», другие — в «будущем». Из-за этого линия перемены дат сильно изломана.
Наиболее ярко это проявилось в островных государствах Тихого океана, где время может быть одинаковым, но при этом даты разные, — какие-то острова стремятся остаться в «прошлом», другие — в «будущем». Из-за этого линия перемены дат сильно изломана.
Дальше |
Проверить |
Узнать результат |
Отправимся теперь за пределы нашей планеты. На Земле часы регулирует стандарт Всемирного координированного времени (UTC). Есть ли подобная система на Марсе?
Нужно. На Марсе нет часовых поясов, и все посадочные миссии использовали местное солнечное время как точку отсчёта.
Здесь есть свой стандарт Координированного марсианского времени (Coordinated Mars Time, MTC), который был придуман ещё в 2000 году. Но он пока что не получил практического применения — для посадки и управления марсоходами и кораблями нужно точно знать расположение относительно нулевого меридиана, который проходит по кратеру Эйри-0. Технически сделать это сложно, поэтому проще и надёжней использовать отсчёт относительно времени на планете к Солнцу.
Вряд ли, конечно, вам придётся писать код для марсианских программ, но такой подход к отсчёту времени отражает простую истину: иногда чем проще — тем лучше.
Здесь есть свой стандарт Координированного марсианского времени (Coordinated Mars Time, MTC), который был придуман ещё в 2000 году. Но он пока что не получил практического применения — для посадки и управления марсоходами и кораблями нужно точно знать расположение относительно нулевого меридиана, который проходит по кратеру Эйри-0. Технически сделать это сложно, поэтому проще и надёжней использовать отсчёт относительно времени на планете к Солнцу.
Вряд ли, конечно, вам придётся писать код для марсианских программ, но такой подход к отсчёту времени отражает простую истину: иногда чем проще — тем лучше.
В точку! На Марсе нет часовых поясов, а все посадочные миссии использовали местное солнечное время как точку отсчёта.
Да, здесь есть свой стандарт Координированного марсианского времени (Coordinated Mars Time, MTC), который был придуман ещё в 2000 году. Но он пока что не получил практического применения — для посадки и управления марсоходами и кораблями нужно точно знать расположение относительно нулевого меридиана, который проходит по кратеру Эйри-0. Технически сделать это сложно, поэтому проще и надёжней использовать отсчёт относительно времени на планете к Солнцу.
Вряд ли, конечно, вам придётся писать код для марсианских программ, но такой подход к отсчёту времени отражает простую истину: иногда чем проще — тем лучше.
Да, здесь есть свой стандарт Координированного марсианского времени (Coordinated Mars Time, MTC), который был придуман ещё в 2000 году. Но он пока что не получил практического применения — для посадки и управления марсоходами и кораблями нужно точно знать расположение относительно нулевого меридиана, который проходит по кратеру Эйри-0. Технически сделать это сложно, поэтому проще и надёжней использовать отсчёт относительно времени на планете к Солнцу.
Вряд ли, конечно, вам придётся писать код для марсианских программ, но такой подход к отсчёту времени отражает простую истину: иногда чем проще — тем лучше.
Дальше |
Проверить |
Узнать результат |
У времени есть начало и конец? Вопрос не философский 🙂
В точку. Существует проблема 2038 года — это ожидаемые сбои в работе техники. Проблема в старых 32-битных системах, в которых тип данных time_t мог хранить секунду только в виде 32-битного целого числа.
В итоге 19 января 2038 года битов перестанет хватать для хранения дат. После этого тип данных может быть только отрицательным, что приводит к закольцованности и ошибкам в вычислениях.
Проблема затрагивает Linux, iOS, Windows и в целом вполне решаема — например, в Linux Kernel 5.6 она уже устранена.
В итоге 19 января 2038 года битов перестанет хватать для хранения дат. После этого тип данных может быть только отрицательным, что приводит к закольцованности и ошибкам в вычислениях.
Проблема затрагивает Linux, iOS, Windows и в целом вполне решаема — например, в Linux Kernel 5.6 она уже устранена.
С научной точки зрения — да. Но в программировании существует проблема 2038 года, когда ожидаются сбои в работе техники и кода. Проблема в старых 32-битных системах, в которых тип данных time_t мог хранить секунду только в виде 32-битного целого числа.
В итоге 19 января 2038 года битов перестанет хватать для хранения дат. После этого тип данных может быть только отрицательным, что приводит к закольцованности и ошибкам в вычислениях.
Проблема затрагивает Linux, iOS, Windows и в целом вполне решаема — например, в Linux Kernel 5.6 она уже устранена.
В итоге 19 января 2038 года битов перестанет хватать для хранения дат. После этого тип данных может быть только отрицательным, что приводит к закольцованности и ошибкам в вычислениях.
Проблема затрагивает Linux, iOS, Windows и в целом вполне решаема — например, в Linux Kernel 5.6 она уже устранена.
Дальше |
Проверить |
Узнать результат |
А что насчёт недели — это всегда семь дней или её продолжительность может меняться?
Верно — во всех странах действует семидневная неделя, но вот структура выходных и рабочих дней может меняться.
При обновлении серверов или софта стоит учитывать, что большая часть населения планеты начинает неделю не с понедельника, а с воскресенья.
Кроме того, существуют и другие локальные различия: в Индии всего один выходной, а в восточном штате Малайзии Сараваке выходные плавающие — хотя есть и «стабильные» рабочие дни: понедельник, четверг и суббота.
При обновлении серверов или софта стоит учитывать, что большая часть населения планеты начинает неделю не с понедельника, а с воскресенья.
Кроме того, существуют и другие локальные различия: в Индии всего один выходной, а в восточном штате Малайзии Сараваке выходные плавающие — хотя есть и «стабильные» рабочие дни: понедельник, четверг и суббота.
Никто пока что не живёт по восьми- или десятидневной неделе. Во всех странах действует семидневная неделя, но вот структура выходных и рабочих дней может меняться. При обновлении серверов или софта стоит учитывать, что большая часть населения планеты начинает неделю не с понедельника, а с воскресенья.
Кроме того, существуют и другие локальные различия: в Индии всего один выходной, а в восточном штате Малайзии Сараваке выходные плавающие — хотя есть и «стабильные» рабочие дни: понедельник, четверг и суббота.
Кроме того, существуют и другие локальные различия: в Индии всего один выходной, а в восточном штате Малайзии Сараваке выходные плавающие — хотя есть и «стабильные» рабочие дни: понедельник, четверг и суббота.
Дальше |
Проверить |
Узнать результат |
Финальный вопрос: дни в календаре иногда пропускают или такого никогда не случалось?
Да, есть два относительно свежих примера: в 2011 году Самоа перескочило один день перед Новым годом, чтобы оказаться на западной стороне линии перемены дат и оптимизировать торговлю с Австралией. В 1993 году подобное сделали в Республике Маршалловы Острова — в летнюю ночь был совершён прыжок с пятницы на воскресенье.
А вот и нет, есть два относительно свежих примера. В 2011 году Самоа перескочило один день перед Новым годом, чтобы оказаться на западной стороне линии перемены дат и оптимизировать торговлю с Австралией. В 1993 году подобное сделали в Республике Маршалловы Острова — в летнюю ночь был совершён прыжок с пятницы на воскресенье.
Дальше |
Проверить |
Узнать результат |
Да, время непостижимо. Кажется, вы никогда не сталкивались с проблемами временных зон и синхронизации часов в софте. Даже немного завидуем. Если голова не пошла кругом к концу теста — обратите внимание на наш курс «Профессия Инженер по тестированию», где мы с нуля обучаем тонкому искусству поиска ошибок в коде и проверке программ на прочность.
Пройти ещё раз |
Для вас время — это просто. Вы смогли ответить правильно примерно на половину вопросов. Если голова не пошла кругом к концу теста — обратите внимание на наш курс «Тестировщик ПО», где мы с нуля обучаем тонкому искусству поиска ошибок в коде и проверке программ на прочность.
Пройти ещё раз |
Вы таймлид. Общая эрудиция и знание географии позволили вам ответить правильно на большинство вопросов, поздравляем! Если голова не пошла кругом к концу теста — обратите внимание на наш курс «Тестировщик ПО», где мы с нуля обучаем тонкому искусству поиска ошибок в коде и проверке программ на прочность.
Пройти ещё раз |
Вы настоящий взломщик времени. Кажется, проблемы временных зон и синхронизации часов в софте — ваша ежедневная рутина. Осталось только разобраться с личным временем и загруженностью команды — обратите внимание на наш курс «Профессия TeamLead», где мы обучим правильно оценивать, приоритизировать и делегировать задачи.
Пройти ещё раз |
Понравилась статья?
Да