Ваш пример не учитывает високосные года.
Извратился так, для моей задачи сгодится
Код:
procedure Tf_Inform.JvDBDateEdit1Exit(Sender: TObject);
var
Year, Moth, Day: Word;
myDate : TDate;
begin
DecodeDate(JvDBDateEdit1.Date, Year, Moth, Day);
myDate := JvDBDateEdit1.Date;
if (Year = 2008) or (Year = 2012) or (Year = 2016) or (Year = 2020) then
begin
if Moth <= 2 then
begin
myDate := myDate + 365;
JvDBDateEdit2.Date := myDate;
end
else
begin
myDate := myDate + 364;
JvDBDateEdit2.Date := myDate;
end;
end
else
begin
myDate := myDate + 364;
JvDBDateEdit2.Date := myDate;
end;
end;