Окно даты
Окно даты — это метод, с помощью которого даты с двузначным числом лет преобразуются в даты с четырехзначным числом лет и обратно. [1] Год смены столетия называется поворотным годом окна даты. [2] Окно даты было одним из нескольких методов, использовавшихся для решения проблемы 2000 года в устаревших компьютерных системах . [3]
Рассуждение
[ редактировать ]Для организаций и учреждений с данными, которым всего несколько десятилетий, решение «окна даты» считалось более простым и экономичным, чем массовые преобразования и тестирование, необходимые при преобразовании двузначных годов в четырехзначные. [3] [4]
Оконные методы
[ редактировать ]Для определения окна даты используются три основных метода:
- Фиксированный опорный год: проще всего закодировать, работает для большинства рабочих дат.
- Скользящий опорный год: определяется путем вычитания некоторой константы из текущего года, обычно используемой для дат рождения.
- Ближайшая дата: три разные интерпретации (прошлый век, этот век и следующий век) сравниваются с текущей датой, и из трех выбирается ближайшая дата.
ФОКУС
[ редактировать ]Information Builders компании FOCUS Внедрение «Century Aware» [5] позволял пользователю сосредоточиться на настройках, специфичных для поля и файла.
Эта гибкость давала лучшее из всех трех основных механизмов: школа могла установить в файле RecentDonors поле с именем BirthDate для использования.
- DEFCENT=19 YRTTHRESH=31, охватывающий тех, кто родился в 1931-2030 гг.
Родившиеся в 2031 году вряд ли станут донорами до 2049 года, поскольку к этому времени родившимся в 1931 году будет 118 лет, и вряд ли они станут нынешними донорами. DEFCENT и YRTHRESH для файла, содержащего нынешних студентов и недавних выпускников, будут использовать разные значения.
Примеры
[ редактировать ]Ниже приведен простой пример кода COBOL с фиксированной датой, который часто используется для определения столетия для обычных деловых дат.
IF RECEIPT-DATE-YEAR >= 60
MOVE 19 TO RECEIPT-DATE-CENTURY
ELSE
MOVE 20 TO RECEIPT-DATE-CENTURY
END-IF.
Приведенный выше код устанавливает фиксированный интервал дат с 1960 по 2059 год. Он предполагает, что ни одна из дат получения не наступает ранее 1960 года и должна работать до 1 января 2060 года. [3]
В некоторых системах есть переменные среды , которые устанавливают фиксированный год разворота для системы. Любой год, следующий за опорным годом, будет принадлежать этому веку (21 веку), а любой год, предшествующий или равный опорному году, будет принадлежать прошлому столетию (20 веку). [6]
В некоторых продуктах, таких как Microsoft Excel 95, использовалось окно 1920–2019 годов, в котором могла возникнуть ошибка окна, которая повторится только через 20 лет после решения проблемы 2000 года. [7]
Операционная система IBM i использует окно 1940–2039 для форматов даты с двузначным годом. [8] В версии операционной системы 7.5 была добавлена возможность использовать вместо этого окно 1970–2069. [9]
См. также
[ редактировать ]- Арифметика серийных номеров , форма оконной обработки для последовательных счетчиков.
Ссылки
[ редактировать ]- ^ Бридис, Тед (16 марта 1999 г.). «Временное решение проблемы 2000 года может продлиться всего одно поколение» . Онлайн Афины . Архивировано из оригинала (html) 4 марта 2016 года . Проверено 13 февраля 2020 г. .
Используя оконное управление, программисты поручают программному обеспечению угадывать столетие для дат, попадающих в определенное «окно» времени, например следующие три десятилетия. Компьютер интерпретирует год на основе будущей так называемой шарнирной даты, или опорной даты, которую программисты выбирают произвольно.
- ^ Хилтон, Гилберт (12 июля 2014 г.). «Лучшее из свиданий, худшее из свиданий» . Архивировано из оригинала (html) 13 февраля 2020 года . Проверено 13 февраля 2020 г. .
Сводный год, также известный как окно даты, принимает двухзначный год и расширяет его, чтобы определить, в каком столетии находится год. Обычно год преобразуется либо в полный четырехзначный год, либо в формат 1900 года, как соответствующий приложению.
- ^ Перейти обратно: а б с Рэймонд Б. Ховард. «Аргументы в пользу окон: методы, за которые можно купить 60 лет». Журнал «Год/2000» (март/апрель 1998 г.).
Использование окон — это долгосрочное решение, которое должно поддерживать нормальную работу устаревших систем до тех пор, пока программное обеспечение не будет изменено...
- ^ Макниш, Ларри (30 декабря 2019 г.). «Проблема поворотного года 2000 года» . Архивировано из оригинала 15 января 2020 года . Проверено 13 февраля 2020 г. .
Выбор фактического опорного года был сделан компаниями на основе их исторических данных. Это никоим образом не было отраслевым стандартом, и этот подход никоим образом не рекомендовался профессионально. Но какое-то время это будет работать.
- ^ Крускопфс, Питер. «Решение дилеммы свиданий» . Информационные строители. п. 4. Архивировано из оригинала 27 декабря 1996 года . Проверено 2 марта 2020 г.
расширенная версия техники раздвижных окон.. Настройки на уровне файлов и полей
- ^ «Глава 1: Разворотный год» . APPX Software, Inc. 2003. Архивировано из оригинала (html) 22 сентября 2012 года . Проверено 13 февраля 2020 г. .
Определяя опорный год, вы указываете APPX определить, к какому столетию принадлежит конкретный год. Например, если опорный год установлен на 35, то любое поле даты с годом больше 35 будет считаться APPX имеющим значение столетия, равное 19. Любое поле даты с годом, меньшим или равным опорному году, будет предполагается, что APPX имеет значение столетия, равное 20.
- ^ Ливингстон, Брайан (9 февраля 1999 г.). «КОМПЬЮТИНГ Выявите и исправьте проблемы 2000 года в Windows 9x и NT» . CNN . Архивировано из оригинала (html) 17 мая 2001 года . Проверено 13 февраля 2020 г. .
Другое распространенное поведение, с которым сталкиваются пользователи Windows, связано с датами в программах электронных таблиц, таких как Microsoft Excel, Lotus 1-2-3 и Corel Quattro Pro. Если вы ввели все даты с четырехзначным числом лет (например, 01.01.1999 и 1.01.2000), все будет в порядке. Но если вы ввели год, состоящий из двух цифр (например, 01.01.29), вы можете быть удивлены тем, как разные программы обрабатывают дату.
- ^ «Новая поддержка базового года для двузначных форматов даты года» . ИБМ. 3 мая 2022 г. Проверено 4 мая 2022 г.
- ^ Алекс Вуди (3 мая 2022 г.). «День анонса: IBM приоткрывает завесу над IBM i 7.5 и 7.4 TR6» . IT-джунгли . Проверено 4 мая 2022 г.