Ошибка в Excel
Наткнулся на занятную ошибку в софте, которой уже 50 лет, и которая, видимо, не будет исправлена никогда: 1900 год в Microsoft Excel
считается високосным, хотя он таким и не является.
В начале восьмидесятых Microsoft
готовила к выпуску свой новый продукт: Excel
. И ему бы пришлось конкурировать с редактором таблиц Lotus 1-2-3
, который вышел на пару лет раньше. И в Lotus
ради экономии памяти и упрощения вычислений не стали сильно заморачиваться с правилами проверки, и 1900 год стал високосным. Пользователям было плевать.
В Microsoft
решили, что преимуществом Excel
будет возможность редактировать и сохранять файлы из Lotus
, и для того, чтобы обеспечить совместимость, повторили ошибку определения високосности года. Замысел сработал, и люди начали потихоньку переходить на Excel
.
Шли годы, программа Lotus 1-2-3
уже давно загнулась, казалось бы пора исправить ошибку, но не тут-то было.
Дата в Excel
хранится в виде целого числа - количества дней с 0 января 1900 года по 31 декабря 9999 года. Задать дату за пределами этого диапазона в Excel
невозможно. То есть, проблема касается только диапазона с января по март 1900 года.
В Microsoft
уверены, что от исправления будет больше проблем, чем пользы:
- Придётся как-то решать проблему сдвига всех существующих дат в документах
Excel
на один день, что может потребовать изменения кода формул и макросов; - Изменение поведения некоторых функций (например,
WEEKDAY
), что может сломать некоторые рабочие листы; - Приведёт к нарушению совместимости с другими программами и системами, использующими даты из
Excel
.
Посмотрели они на это всё, чувствую, и решили, что два первых месяца в 1900 году не то, чтобы такие уж и популярные…