Здравствуйте, netch80, Вы писали:
N>Почему для тебя беззнаковость номера дня важнее остальных факторов?
Каких "всех"? Здесь пока озвучивались только монотонность при переходе через нуль, спецзначения вроде -1, и экономия на преобразованиях. Циклы с декрементом до нуля включительно я использую крайне редко, для спецзначений использую UINT_MAX и соседние, и добавить несколько преобразований, даже в виде static_cast вместо int (), меня не ломает.
N>>>Но, как только начинается вопрос про то, что даты надо вычитать, уже приходится переводить к знаку (об этом тебе уже написали рядом). Ну и зачем эти лишние конверсии?
ЕМ>>А если даты нужно делить, чтобы, например, вычислить среднее количество дней, которое занимали некие процессы? Давайте уж сразу хранить их в double, сэкономим на конверсиях.
N>И это вполне возможно. Юлианский день, в плавучке — достаточно точный метод задания времени. Но тут начинаются проблемы округления, это уже неудобно. Вот unixtime в микросекундах со знаком — достаточно дёшево и защищено от подобных проблем.
Знак-то там зачем? Я вот очень часто пользуюсь виндовой GetTickCount, и ни разу не приходилось преобразовывать результат к знаковому типу. Запомнил время при старте цикла или на последней итерации, на очередной итерации вычел его из нового значения, получил истекший интервал. "Заворот" при переполнении обрабатывается естественным образом, автоматически. Что я все эти годы делал не так?