Ответ
Классическим примером является Y2K-баг (Проблема 2000 года).
Суть проблемы: Многие старые системы хранили год в виде двух последних цифр (например, 99 вместо 1999), чтобы экономить память. При переходе на 2000 год значение 00 интерпретировалось как 1900, что вызывало сбои в расчётах дат.
Пример на Python, иллюстрирующий проблему:
def get_short_year(full_year):
# Опасная функция, возвращающая только две последние цифры года
return str(full_year)[-2:]
print(get_short_year(1999)) # Вывод: '99'
print(get_short_year(2000)) # Вывод: '00' → система может воспринять это как 1900 год.
Последствия: Потенциальные сбои в финансовых системах, управлении энергосетями и авиацией. Для устранения потребовались глобальные затраты на аудит и обновление кода.
Современный аналог — Проблема 2038 года: Переполнение 32-битного целочисленного типа time_t в системах Unix, которое произойдёт 19 января 2038 года в 03:14:07 UTC.