1 заметка с тегом

люди

Даты и время по-человечески

На написание этой заметки меня подвигло появление в ленте TUT.by меток времени



На критику убрать лишнее двоеточие в конце и отображать время даты в удобном для людей виде: «3 минуты назад», «вчера в 12:40» @tut_by отреагировал вяло и не прислушался. Мол, а что делать если страница не обновлялась несколько часов? Хотя тем, кто видел твиттер, это не должно казаться сколь значимой проблемой :)



Меня невероятно бесит на каждом шагу спотыкаться о программерское безобразие в виде:
Выполнено 2012/07/06-01.27.02 — SHIT!
Этот частокол из цифр и символов еще не так ужасно смотрится в пределах одной строки, но способен довести до икоты в таблице на 40 рядов. Если вам когда либо приходилось разбираться с выпиской из банка, вы вероятно уроните слезу на этой строке.
Чем это ужасно? Во первых, на то чтобы понять, что это за дата уходит куча времени. Даже если расставить пробелы и вывести по правилам, почитав о стандартах, хорошего выйдет мало:
Выполнено 2012.07.06 01:25:02 — чуть лучше
Уже лучше но хорошего мало. Думаю вы усомнились бы в здравом рассудке своего знакомого, если бы он вам рассказал как хорошо отдохнул в ноль-седьмом-месяце. Быстро сориентироваться и воспринять значение в этой строке без календаря сложно.
Стандарт ISO-8601 обстоятелен и прекрасно работает для унификации и согласованной работы машин, но совершенно чудовищен по отношению к человеку. Если заглянуть в Википедию, это видно и понятно даже гику: именно правая колонка дает наиболее простое и понятное представление — это изложение принятое в повседневной речи. Смею предположить, что этот стандарт и является безвольным виновником того, что человечество потеряло века на поиски и разбирательство со строками дат. Все потому, что этот стандарт создан для машин, а о стандарте для людей как-то позабыли.
До идеала абсолютного времени достаточно сделать хотя бы так:
Выполнено 6 июля 2012 в 1:25:02 — хорошо
Не смотря на то, что в последний вариант воспринимать проще, он еще весьма далеко от идеала.
Правильное представление меток времени должно вестись от человека. Пользователь всегда находится во времени сегодня и в сейчас. То есть началом координат системы отсчета времени нужно считать не абсолютно: нулевой год и час от Рождества Христова, а относительный и определять его следует от психологически воспринимаемого «сейчас» пользователя.
Более правильным и комфортным для восприятия будет такое представление:
Выполнено 2 часа назад — отлично
Чтобы не расписывать алгоритм и таблицы примеров я составил простую блок-схему шпаргалку для программистов (и им сочувствующим) по формированию дат и времени для комфортного человеческого восприятия.



Блок-схема не является идеально верной и не стремиться полностью скопировать человеческую речь. К примеру в ней нет (и не будет) конструкций: «позавчера в ...», «на будущей неделе ... », поскольку задача состоит не в копировании речи, а в упрощении ориентации человека во времени. Некоторые временные отрезки (в пределах минут и суток) приняты исключительно согласно мироощущению автора.

Разумеется, этот принцип и формат времени нельзя применять для статичных страниц, печатных страниц и диапазонов. Для этих случаев нужно использовать абсолютное значение времени.