The Daily WTF на русском
Подписаться
CodeSOD: Негативные дни
Исходный код .NET для структуры TimeSpan содержит комментарий, объясняющий ее функциональность. TimeSpan представляет собой продолжительность, которая может быть как положительной, так и отрицательной. Внутренне она хранится как количество миллисекунд. Такое представление хорошо работает для таких единиц, как часы и дни, но становится неточным для более длительных периодов. Например, месяцы могут иметь разную продолжительность от 28 до 31 дня. Аналогично, год может состоять из 365 или 366 дней, а десятилетие может включать от одного до трех високосных лет. Эти несоответствия являются причиной того, что структура TimeSpan не предлагает методов для лет или месяцев. Упомянутые "364 дня" для года являются незначительной ошибкой, "