Ошибка в 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 году не то, чтобы такие уж и популярные…