Tag Archives: tmo

Изврат с датой и временем

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

Прикол в том, что есть два понятия: время и дата со временем. Время – это миллисекунды от начала суток, и форматируются они как “чч.мм.сс.ммм” (какого хера время разделяется точкой – вопрос тот ещё), а дата и время – это секунды от ниоткуда и форматируется оно как “ддд:чч.мм.сс”, где “ддд” – дни, получающиеся делением этих самых секунд на количество их в сутках. То есть, к примеру, “128:13.25.30” – это 128-й день, 13 часов, 25 минут, 30 секунд. При этом откуда отсчитывается 128-й день систему совершенно не волнует. Тот, кто на это будет смотреть, располагает этой информацией. Другими словами, это относительное время.

Далее. Чтобы получить дату в виде “день-месяц-год” (который системой не поддерживается) был проделан следующий прикол: в дату со временем день был засунут на своё законное место, месяц – на место часов, а день – на место минут. Секунды остались нулевыми. В результате 25:03.06.00 – это 23 марта 2006 года. Вот тут-то П. и оказался в полной жопе. Даже сама идея хранения даты со временем в относительном виде и то вызывает у нормального человека глубокий шок, а уж додуматься, что часы – это месяц, а минуты – это год, это уже ни один нормальный человек не в состоянии. Ну сами посудите, эта переменная увеличивается за год на величину, в 60 раз меньшую, чем за один месяц!