The Daily WTF на русском
Подписаться
CodeSOD: Исторические блоки
Тим унаследовал старое приложение на Visual Basic, датируемое до 2000 года. Это приложение использует собственную логику для форматирования годов, добавляя ведущий ноль к однозначным годам. Код преобразует год в целое число, а затем в строку для отображения. Если год меньше 1000, он предваряется нулем "0". В противном случае целое число года напрямую преобразуется в строку. Это форматирование было реализовано для обеспечения отображения годов всегда в четырехзначном формате. Однако приложению на самом деле не требовалось обрабатывать даты до 1000 года нашей эры. Логика добавления нуля для годов меньше 1000 приводила к формату "014" для 14 года нашей эры. Это добавление нуля в конечном итоге было избыточным, поскольку более поздние части программы переформатировали даты, используя встроенные типы. Следовательно, добавление нуля не имело практического значения для существующей функциональности.