У меня есть форма, которая позволяет пользователям вводить дату рождения:Delphi DateTimeFormat возвращение неправильно
т.е. 4/16/40
Затем, когда пользователь обрабатывает форму есть функция, которая проверяет его длина, добавляет ведущие нули, разбирает дату, а затем использует FormatDateTime только возвратить год рождения:
strTemp := strPostedByDOB;
If Length(strTemp) = 5
then strTemp = '0' + strTemp;
if Length(strTemp) = 6
then begin
strTemp := Copy(strTemp, 1 ,2) + '/' + copy(strTemp, 3, 2) + '/' + Copy(strTemp, 5, 2);
strTemp := FormatDateTime('YYYY', StrToDate(strTemp));
end
else strTemp := EmptyStr;
с помощью этого кода strTemp рассчитывается как 2040 вместо 1940. Может кто-нибудь помочь мне понять, как сделать он показывает 1940 в strTemp? Нужно ли мне менять форму, чтобы принять 4-значный год?
Спасибо, Лесли
Y2K ошибка. Попросите четырехзначные годы. Во всяком случае, с 2000 года большинство людей (по крайней мере здесь) используют четыре цифры лет. – AlexV
Ваша форма должна использовать элемент управления TDateTimePicker. Затем вся проблема исчезает, ваша программа не должна угадывать, и дата отображается и редактируется с использованием настроек формата пользователя, настроенного пользователем. –