Аналитика
Время не то, чем кажется

Время не то, чем кажется

Да, наша реальность предполагает наличие такого абстракта как время. Материя + движение = время, время + материя = движение, движение + время… ну вы поняли. Вот такая реальность нам попалась.

Да, наша реальность предполагает наличие такого абстракта как время. Материя + движение = время, время + материя = движение, движение + время… ну вы поняли. Вот такая реальность нам попалась.

И если с материей у нашей цивилизации всё более-менее (ох уж этот меркантильный мир), то со временем — полный кавардак!

Начнём с года — всё же планета облетает Солнце… Какой сейчас год? А по какому календарю? А что такое «сейчас»? Ну мы же юниксоиды:

900913:~ Gosha$ date +%Y

2017

По определённому календарю это так. Но их ведь много… Ладно, чёрт с ним. А что было до? Вселенная не существовала? Нет, просто там было время до рождения одного человека… Ничего, вы уже привыкли.

Окей, мы взяли произвольную точку во времени и пометили её как 0. Всё же хорошо теперь?

Обратим внимание на месяцы. Где-то 30 дней, где-то 31. Тут важно ещё помнить об «особенном» — феврале. Тут бывает и 28 дней и 29… О, это прекрасный пример hardcode в реальной жизни. Не было ли удобнее, раз уж неделя = 7 дней, сделать 13 месяцев по 4 недели и оставшиеся пару дней просто объявить «зоной лимбо», в которую мы ничего не делаем, просто ждём следующих год. Пару дней, а не неделю, как у нас новогодние праздники!

Окей, месяц мы опошлили — пришло время дней! «А тут что?» — спросите вы… А ничего, если не учитывать, что в зависимости от временной зоны могут быть отклонения в 26 часов!

Существуют зоны -12 и +14! И к этому привыкнете…

Кстати, а у какой страны больше всего часовых поясов? И тут мы не считаем дробные типа 15 минут туда-сюда (и такие есть… Такое ощущение, что часовые пояса придумывал человек под ЛСД).

Франция… Такие дела — 12 поясов.

В этом моменте мы ещё часы обгадили… И минуты (дробные пояса). И да, почему часов 24, а минут 60 и секунд 60? И почему сутки на самом деле на 4 минуты меньше (приблизительно 23 часа 56 минут 4 секунды)?

Секунды! Ох уж эти секунды… Короче, залипающая секунда всё, как и всегда, портит.

Ой, ой, а ещё есть летнее время и зимнее! Просто праздник какой-то!

Ладно, это всё же IT-блог. И ведёт его математик — здравый смысл, все дела. Как же дела обстоят в этих ваших unix-ах, что всё работает?

А никак! Тут всё тот же раздрай, что и в «обычной» жизни. Внезапно, включился ntp-клиент и приложение заснуло вместо доли секунды — на те самые 26 часов.

И всё от того, что кто-то продолжает использовать syscall gettimeofday — прекрасный вызов для вывода этого вашего «человеческого» времени. Вместо того, чтобы использовать CLOCK_MONOTONIC, которое считает с какой-то рандомной точки, постоянно не уменьшаясь и близко к тикам часов… Звучит как «почти всегда работает как надо кроме 90% случаев, но там хоть не критично, наверное» — и так и есть!

Короче, компьютер не умеет считать время. Есть куча абстракций, которые делают умное лицо, но всё это враньё.

Всего хорошего и «до завтра», если оно, конечно, наступит.