Проблема 1900 года

Проблема 1900 года связана с неверным толкованием дат, записанных только двумя последними цифрами года, и тем, произошли ли они до или после 1900 года. В отличие от проблемы 2000 года, она не связана исключительно с программным обеспечением, поскольку существовала ещё до появления компьютеров и встречалась также в ручных системах.

Наиболее частый вопрос, возникающий с проблемой 1900 года, касается возраста человека. Часто год рождения человека записывался только двумя цифрами в предположении, что либо неважен точный возраст человека, либо никто не живёт более ста лет. В некоторых странах, особенно в Европе, был введён национальный идентификационный номер (часто в 1950-х годах), включающий двузначную информацию о годе рождения.

Наиболее нежелательным побочным эффектом этого является то, что люди в возрасте 100 лет и старше принимаются за маленьких детей, а в некоторых случаях маленькие дети — за взрослых[1].

При решении проблемы 2000 года иногда принимались меры для предотвращения или исправления этого, например, путем изменения национального идентификационного номера. Так, в болгарском Едином гражданском номере год записывается только двумя цифрами, однако решение уже было готово на момент принятия системы в 1975 году – к номеру месяца добавлялось 20 для лиц, родившихся до 1900 года и 40 для родившихся после 2000 года.

Microsoft Excel

Microsoft Excel не может отображать даты до 1900 года, хотя это не связано с использованием двузначного целого для представления года, а вызвано тем, что Excel использует числа с плавающей запятой для хранения дат и времени. Число 1.0 представляет первую секунду 1 января 1900 года, в системе дат 1900 года (или 2 января 1904 года в системе дат 1904 года, которая была стандартной для Macintosh до Excel 2016). Числа меньше 0.0 отображаются как ошибка #VALUE![2].

Для совместимости с Lotus 1-2-3 система дат 1900 года ошибочно принимает дату 29 февраля 1900, хотя 1900 не являлся високосным. Это приводит к тому, что функция WEEKDAY выдает неверные результаты для периода с 1 января 1900 года по 28 февраля 1900 года.[3].

См. также

Примечания

  1. 5-Year-Old Boy Summoned For Jury Duty. WBAL-TV (8 марта 2006). Дата обращения: 2017-04-31. Архивировано 30 сентября 2011 года.
  2. Date systems in Excel. support.microsoft.com. Дата обращения: 17 ноября 2025.
  3. Excel incorrectly assumes that the year 1900 is a leap year. Microsoft Docs (21 мая 2020). Дата обращения: 30 июля 2020.