Окно дат - это метод, с помощью которого даты с двузначным годом преобразуются в даты с четырехзначным годом и обратно. [1] Год изменения века называется годом поворота окна даты. [2] Окно даты было одним из нескольких методов, используемых для решения проблемы 2000 года в устаревших компьютерных системах . [3]
Рассуждение
Для организаций и учреждений с данными, которым всего несколько десятков лет, решение «окна даты» считалось более простым и экономичным, чем массовые преобразования и тестирование, необходимые для преобразования двухзначных лет в четырехзначные. [4] [3]
Методы работы с окнами
Для определения окна даты используются три основных метода:
- Фиксированный сводный год: проще всего кодировать, работает для большинства рабочих дат.
- Год скользящей оси: определяется путем вычитания некоторой константы из текущего года, обычно используется для дат рождения.
- Ближайшая дата: три разных интерпретации (прошлый век, этот век и следующий век) сравниваются с текущей датой, и из трех выбирается ближайшая дата.
ФОКУС
Information Builders «ы FOCUS „Century Aware“осуществление [5] позволило пользователю сосредоточиться на полевых и конкретные параметры файла конкретного.
Эта гибкость дает лучшее из всех трех основных механизмов: школа могла бы иметь файл RecentDonors, устанавливающий поле с именем BirthDate для использования
- DEFCENT = 19 YRTHRESH = 31, включая тех, кто родился в 1931-2030 годах.
Те, кто родился в 2031 году, вряд ли будут делать пожертвования до 2049 года, когда родившимся в 1931 году будет 118 лет, и вряд ли они станут нынешними донорами. DEFCENT и YRTHRESH для файла, содержащего нынешних студентов и недавних выпускников, будут использовать разные значения.
Примеры
В системах Unix и Windows есть переменные среды, которые устанавливают для системы фиксированный год поворота. Любой год после опорного года будет принадлежать этому веку (21 веку), а любой год до опорного года или равный ему будет принадлежать прошлому столетию (20 веку). [6]
В некоторых продуктах, таких как Microsoft Excel 95, использовалось окно с периодом 1920–2019 гг., В котором можно было столкнуться с ошибкой оконного режима, повторяющейся только через 20 лет после устранения проблемы 2000 г. [7]
Ниже приведен простой пример кода COBOL с фиксированным окном даты, который часто используется для определения века для обычных деловых дат.
ЕСЛИ ПОЛУЧЕНИЕ-ДАТА-ГОД > = 60 ПЕРЕМЕСТИТЕ 19 ДО ПОЛУЧЕНИЯ-ДАТА-ВЕК ЕЩЕ ПЕРЕМЕСТИТЕ 20 ДО ПОЛУЧЕНИЯ-ДАТА-ВЕК КОНЕЦ-ЕСЛИ .
Приведенный выше код устанавливает фиксированное окно дат с 1960 по 2060 год. Он предполагает, что ни одна из дат не раньше 1960 года, и должен работать до 2060 года. [3]
Смотрите также
- Арифметика серийных номеров , форма окна для последовательных счетчиков
Рекомендации
- ^ Bridis, Ted (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 и 01.01.2000), все должно быть в порядке. Но если вы ввели двузначное число лет (например, 1/1/29), вы можете быть удивлены тем, как разные программы обрабатывают дату.