». Как хорошо, что у меня открыта статья «Секунда» на википедии27 и я смог это прочитать почти без запинки. Для тех, кто не верит – это официальные определения секунды.

– А для тех, кто не понял, поясню: то есть какие-то умные часовые мастера сделали механизм, в котором что-то и как-то работало, а дальше сотни физиков, химиков, астрономов, астрологов, гомеопатов, знахарей и других замечательных людей пытались придумать хоть сколько-нибудь вменяемое определение того, что используют все люди на планетке более сотни лет. И не придумали ничего лучше и проще, чем «1/31 556 925,9747 доля» и «в точности 9 192 631 770» при температуре 0 К. Да, я теперь тоже открыл статью «Секунда».

– Откуда взялись месяцы, почему их двенадцать, почему в разных месяцах разное количество дней, високосные годы, летнее и зимнее время, часовые, Господи прости, пояса, взлетные полосы – про все это папа расскажет сыну. Отдельно с любовью и теплом в голосе вспомнит про недели, про их сопоставление с месяцами и с годами, про то, как второе, например, января находится в двух неделях разных лет – и это нормально.

– Как вы понимаете, месяцы и недели были придуманы просто так. Так же как и количество дней в них. Тут пусть будет 28, а тут пусть целых 31. Антон, продолжай, а я сейчас зарисую.

– 1 февраля 2003-го я встретил в школе, одиннадцатый класс. Помню, сколько радости меня переполняло, когда я выводил в тетради «01.02.03». Вру, конечно, ничего я не помню. Календарь говорит, что это была суббота. Я даже не смог вспомнить, учились ли мы по субботам в одиннадцатом классе. Но дату помню – красивая была дата. А как на эту дату отреагирует машина? Машина наверняка попросит дать ей формат даты28, ибо вариаций того, что хотел сказать автор, машина знает множество. 1 февраля 2003, 2 января 2003, 2 марта 2001, 3 февраля 2001 – все это и кое-что еще. И то в случае, если машина не скажет «еггог ай-ай-ай». А она скажет.

– Это все в том числе потому, что в разных странах разные форматы – это тоже норма, к сожалению. Что в России – 1 февраля 2003, то в США будет 2 января 2003, а в Китае – 3 февраля 2001.

– Да, ведь машинную логику закладывают люди. И это ведь еще стоит порадоваться, что человечество ушло от следующих календарей: майя, Нуми Помпилия, самватский, лунно-солнечный, бахаи, румийский, хараппский, Армелина и от сотен других.

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

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



– И вот, казалось бы, один григорианский календарь у всех, – продолжил Антон. – Сутки можно измерить по солнцу. Секунду каждый желающий может аж двумя способами отмерить в домашних условиях: и через атом цезия, и через скорость света. Ну вот чего еще не хватает? Но проблемы продолжают возникать даже сейчас, особенно в информационных технологиях.

– А следствием являются проблемы у их пользователей.

– В каждом из существующих языков программирования есть несколько, а то и несколько десятков, типов данных, связанных с хранением даты и времени. Есть десятки функций, которые их как-то преобразовывают. Форматов ввода и вывода даты и времени (маска, шаблон) десятки, где-то они указываются неявно, где-то явно преобразовываются, и вот 1 февраля превратилось во 2 января. Сколько людей проспало работу, потому что будильник сам не перевелся на летнее время? А сколько проспало из-за того, что перевело часы на зимнее время, а потом они еще раз перевелись автоматически? Сколько людей, покупая билеты или назначая встречу, не учли часовые пояса? Или учли, но как-то не так. Или попросили бездушную и безошибочную машину сказать точное время в другой части планеты…