Excel и загадка 1900-го: почему таблица думает, что это был високосный год 🤔

  • Категория: Microsoft
  • Дата: 15 апреля 2026 г. в 14:04
  • Просмотров: 42

Обложка

Знаете, я люблю копаться в таких вот технических штуковинах, которые живут своей жизнью и имеют свои маленькие (или не очень) причуды. И вот наткнулся на одну историю про Excel, которая меня прям зацепила! 🚀

Оказывается, Excel до сих пор считает, что 1900 год был високосным. Да-да, вы не ослышались! И знаете почему? Всё из-за одной небольшой хитрости, которую провернули ещё в 80-х. 🤯

Помните, как раньше в Excel можно было отслеживать даже такие вот мелочи?

Как же так вышло? 🤔

Дело в том, что в 1983 году вышла программа Lotus 1-2-3, которая сразу стала хитом среди профессионалов. И вот эта самая программа тоже считала 1900 год високосным. Конечно, для большинства расчётов это не было проблемой.

А когда в Microsoft выпустили Excel, решили сделать его максимально совместимым с Lotus 1-2-3. Чтобы пользователи могли без проблем переносить свои данные и таблицы из одной программы в другую, Excel скопировал и эту "особенность". И вот, с 1985 года этот баг живёт и здравствует! 🎉

Почему его не исправили? 🤷‍♂️

Как оказалось, исправить эту ошибку — целая головная боль. Если бы Microsoft вдруг решили "починить" Excel и заставить его считать 1900 год не високосным, то даты в старых документах (и даже в новых!) могли бы сдвинуться аж на целый день. 😱 Представьте, сколько всего бы полетело к чертям: функции WEEKDAY (которая определяет день недели) работали бы неправильно, а совместимость с другими программами тоже могла бы пострадать.

Вот и получается, что оставить ошибку — проще, чем чинить. Иначе пришлось бы переписывать кучу кода, и это могло бы вызвать еще больше проблем. Так что, Excel продолжает жить с этим "историческим" багом.

Интересно, что бы сказал сам Билл Гейтс, если бы узнал об этом?

Откуда вообще взялось это решение? 💡

В 1992 году такой себе Джоэл Спольски (да-да, тот самый, который Joel On Software) узнал про этот баг и даже обратился к Эду Фрайсу, одному из ключевых людей в Microsoft того времени. Фрайс объяснил, что Lotus, скорее всего, намеренно так сделали. Им нужно было уместить программу в 640 КБ памяти, а так проверка на високосный год была гораздо проще — всего лишь два бита в конце числа. Они решили, что ошибка в паре месяцев в прошлом году — это не так уж критично. 💪

Так что, в следующий раз, когда захотите где-то срезать углы или сделать что-то "на скорую руку", вспомните эту историю с Excel. Иногда такая мелочь может жить десятилетиями! 😉

Краткий вывод от Евгения (MSReview): Эта история — отличный пример того, как старые решения, принятые для удобства и совместимости, могут оказывать долгосрочное влияние на программное обеспечение, даже если они технически неверны. Иногда лучше сохранить проверенное, чем рисковать стабильностью.

MSReview Источник:
www.windowscentral.com
  • 0




  • Комментарии
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.