Совершенно верно сказать: «Моя программа не будет работать с историческими данными».В вашем конкретном случае «исторические данные» были существом до 1 января 2010 года. Я категорически не согласен с теми, кто говорит, что вообще плохая идея - налагать такие ограничения на ваш код.
Мы живем с этимиограничения каждый день.Например, стандарт UNIX time_t
имеет диапазон плюс-минус около 68 лет.Приложения, в которых даты и время хранятся с time_t
, не могут представлять дату до 1901-12-13 или после 2030-01-19.И все же миллионы приложений написаны с использованием этого формата времени.Но мы не слышим, чтобы кто-то утверждал, что эти программы как-то плохи.
Создание приложений - это компромисс.Если, по вашему мнению, нет необходимости указывать даты, превышающие какой-то произвольный момент в прошлом или даже в будущем, тогда это нормально.Это ничем не отличается от разработки системы, которая будет хранить только X записей, или развертывания с диском объемом 1 терабайт, зная, что в конечном итоге вам придется обновляться по мере роста ваших данных.Дело в том, что мы не можем разрабатывать для всех случаев.
Те, кто утверждает, что «ошибка 2000 года» показывает, почему вы не должны устанавливать произвольные ограничения в своем коде, не продумывают вещи.В конце концов, 4-значный год также является произвольным ограничением.Что, если я хочу представить дату в 10 000 лет в прошлом или будущем?Это чертовски ошибка Y10K!В какой-то момент мы накладываем ограничение на диапазон вещей, которые мы поддерживаем.
Каждое программное обеспечение имеет ограничения.Вы выбираете ограничения, подходящие для вашего приложения, и то, как вы видите его использование в будущем.