Почему в календаре Excel появился лишний день

В григорианском календаре год, который делится на 100, обычно не високосный; исключение — годы, делящиеся на 400. Поэтому 1900-й не был високосным. Но в системе дат Excel за ним закреплено 29 февраля, которого в действительности не существовало.

Причина связана с тем, как электронные таблицы хранят даты. Программа превращает календарный день в порядковый номер: с такими числами удобно считать интервалы и прибавлять дни. Excel унаследовал принятую в ранних табличных программах ошибку и включил лишний день в эту нумерацию.

Зачем сохранять ошибку

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

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