Почему Excel до сих пор считает 1900 год високосным — и почему это не исправляют
История началась с Lotus 1-2-3: там разработчики считали 1900 год високосным, чтобы упростить обработку дат. Когда Microsoft создавала Excel, эта особенность перешла по наследству вместе с системой отсчёта, где каждому дню присвоен порядковый номер — 1 января 1900 года равно единице. Несуществующее 29 февраля получило номер 60, а следующее за ним 1 марта — 61. Все дальнейшие даты считаются с учётом лишнего дня.
Так ошибка и закрепилась на десятилетия — она есть и в современных версиях Excel. Компания о ней знает и не скрывает: по сообщению Computer Bild, в Microsoft прямо объяснили, почему не трогают сбой. Технически исправить его можно, но тогда почти все даты в существующих таблицах и других документах сдвинулись бы на день назад. Пришлось бы проверять и переписывать формулы, а совместимость с программами, работающими в той же системе отсчёта, оказалась бы нарушена.
Выбор сделан в пользу предсказуемости: пользователь, открывший старую таблицу, получает те же значения, что и годы назад. Такой подход даёт понятные правила игры — интерпретация, но она опирается на прямой довод Microsoft о сдвиге дат и формулах. Обратная сторона известна заранее, а не выясняется в момент сдачи отчёта.
Знать границы собственных инструментов полезно и в мелочах. Ранее авторы издания Chip рассказали, что в Windows есть запрещённые имена файлов — CON, PRN, AUX, NUL и другие обозначения, — которые нельзя использовать при обычном создании документов и папок.