О-Ля-Ля
О-Ля-Ля

делфи YearNow:=YearOf(SysUtils.Date); Nf:=DateToStr(YearNow) выдает 05.07.1905 хотя должен 2013 ПОЧЕМУ?

Екатерина
Екатерина

Потому что отсчет в TDateTime идет от 30 декабря 1899 года. .
И когда вы даете функции DateToStr год (2013), то она считает, что это не дата, а количество дней прошедших с 30 декабря 1899 года.

2013 дней / 365 равно приблизительно 5.5 годам..

МК
Михаил Кучинов

Если нужен только год - то все гораздо проще:

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(FormatDateTime('yyyy', Now));
end;

end.

Похожие вопросы
программа делфи выдает ошибку из-за того что не находит файл
Программирование Делфи
Как сделать так что бы делфи спрашивало - файл существует, вы уверены что хотите заменить его ?
Почему Делфи не перехватывает ошибку?
Как считать в делфи?
почему не компилируется проект в делфи?
почему не работает разветвление в делфи?
почему не хотят выдать сетификат
почему делфи так коряво выводит число:
Проблема в делфи, выдает ошибку при использовании функции ord