«Большинство пользователей не работает с датами до 1 марта 1 900 года, поэтому эта проблема встречается редко»

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Есть всего три претендента на звание самого популярного ПО для работы с электронными таблицами: VisiCalc — первая электронная таблица, становившаяся причиной для покупки некоторых домашних компьютеров конца 1970-х, Lotus 1-2-3, доминировавшая на первых PC в 1980-х, а после них — Microsoft Excel (которому очень недолго предшествовал Multiplan). Excel доминировал на рынке с 1990-х, поэтому можно запросто вообразить, что он существовал всегда, но даже внутри Excel скрываются кое‑какие особенности его предшественников.

Одна из них задокументирована в официальном документе по устранению неполадок Microsoft Excel:

Первая версия Lotus 1-2-3 предполагала, что 1900 год был високосным, хотя на самом деле он им не был. Это позволяло программе проще обрабатывать високосные годы, при этом почти не вредя вычислениям с датами.

Когда были выпущены Microsoft Multiplan и Microsoft Excel, в них тоже предполагалось, что 1900 год был високосным. Это допущение позволяло Multiplan и Microsoft Excel использовать ту же систему числового представления дат, что и в Lotus 1-2-3, обеспечивая улучшенную совместимость с Lotus 1-2-3. Работа с 1900 годом как с високосным также упрощала перенос листов из одной программы в другую.

Да, даже в современной версии Excel можно легко получить 29 февраля 1900 года — дату, которой не существовало:

То, что написано ниже в этом документе, читать довольно забавно: ты как будто чувствуешь раздражение от того, что кому‑то приходится снова и снова отвечать на этот вопрос или оказываться виновным в решении, которое он даже не принимал:

Хотя технически возможно исправить это поведение, чтобы текущие версии Microsoft Excel не считали 1900 год високосным, минусы такого решения перевешивают преимущества.

Если исправить это поведение, то возникнет множество проблем, и в том числе:

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

  • Некоторые функции, например, функция WEEKDAY (ДЕНЬНЕД), будут возвращать другие значения; это может привести к неправильной работе формул в листах.

  • Исправление этого поведения нарушит совместимость числового представления дат между Microsoft Excel и другими программами, использующими даты.

Если это поведение не исправлять, то возникнет только одна проблема:

  • Функция WEEKDAY будет возвращать некорректные значения для дат до 1 марта 1900 года, а поскольку большинство пользователей не работает с датами до 1 марта 1900 года, эта проблема встречается редко.

Но мне всё же нравятся подробности этого замечательно примера совместимости багов.

Источник: https://habr.com/ru/articles/1097432/


Интересные статьи

Интересные статьи

Онлайн-сервис для управления бизнесом Битрикс24 вводит обязательную двухфакторную аутентификацию (2FA) для компаний, работающих на облачных тарифахе «Профессиональный» и «Энтерпрайз». После активации ...
Привет, Хабр! Это снова Алиса из KISLOROD. В прошлых частях мы вынесли из Битрикса каталог, корзину, цены и чекаут. Но в любом ecommerce-проекте есть еще одна зона турбулентности — интеграции.Платежки...
На платформе бесплатных игр YouTube Playables появились многопользовательские игры. Сейчас пользователям доступны только две игры, Ludo Club и Magic Tiles 3, но в будущем их появится больше. «Мы ...
Интересно, сколько людей понимают, что в Python много синтаксического сахара? Я не говорю, что он похож на Lisp-подобные языки, где синтаксис настолько голый, насколько э...
Битрикс24 — популярная в малом бизнесе CRM c большими возможностями даже на бесплатном тарифе. Благодаря API Битрикс24 (даже в облачной редакции) можно легко интегрировать с другими системами.