Topic: Как добавить два года к DateTimePicker

Собстенно вопрос.

Как прибавить к дате ровно два года?
Вариант form.my_date.Date := form.my_date2.Date +730;  не подходит так как не учитывает високосные года.

Re: Как добавить два года к DateTimePicker

Привет SereiE
Один из способов сделать это так (см. вложение).
Derek.
.
One way to do it is like this (please see the attachment)

Post's attachments

Attachment icon add years.zip 335.38 kb, 142 downloads since 2022-09-12 

3 (edited by k245 2022-09-13 09:25:25)

Re: Как добавить два года к DateTimePicker

function IncYear(ADate:TDateTime; AValue:integer = 1):TDateTime;
// увеличить дату на год или несколько лет
var
  Year,Month,Day: Word;
begin
  DecodeDate(ADate,Year,Month,Day);
  Inc(Year,AValue);
  if (Month = 2) and (Day = 29) and (not IsLeapYear(Year)) then
    Day := 28;
  Result := EncodeDate(Year,Month,Day);
end;

Использование:


Form.my_date.Date := IncYear(form.my_date2.Date,2);
Визуальное программирование: блог и телеграм-канал.

Re: Как добавить два года к DateTimePicker

Привет Константин,
Я не знал о функции:
'isleapyear'
Спасибо за чаевые.
С уважением,
Derek.