Access / Jet / ACE (и многие другие компоненты Windows) используют окно для интерпретации двухзначных лет.Для 00–29 предполагается 2000–2029, а для 30–99 - 1930–1999.Это было сделано для решения проблем совместимости с Y2K когда-то в период 1997-98 годов.
Я не разрешаю ввод двухзначного года в любом месте моих приложений.Из-за этого мне не нужно иметь какой-либо код для интерпретации того, что задумал пользователь (который может ошибаться).
Это также указывает на проблему независимости формата отображения и хранения данных.со значениями даты Jet / ACE.Хранение как двойное, с целочисленной частью, указывающей день с 30.12.1899, и десятичной частью временную часть в течение дня.Любая дата, которую вы введете, будет сохранена как одно число.
Если вы введете неполную дату (т. Е. Без указания века для года), ваше приложение должно сделать предположение относительно намерений пользователя.Окно 2029 является одним из решений проблемы двухзначного года, но, на мой взгляд, совершенно неуместно зависеть от него, потому что пользователь может изменить его в своих региональных настройках панели управления.Я не пишу какой-либо сложный код для проверки дат, я просто требую четырехзначного ввода года и полностью избегаю проблемы.Я делаю это с c.1998 год как само собой разумеющийся, и все к нему полностью привыкли.Несколько пользователей кричали тогда, и я использовал «это из-за 2000 года» как оправдание, которое закрыло их.Как только они привыкли, это стало проблемой.