Topic: К дате прибавить год
procedure si_DateTimePicker1_OnChange (Sender: string);
var
i,m,y : integer;
c : real;
DD, MM, YY, YYNow: word;
begin
// проверяем корректность ввода количества дней
try
i := StrToInt(si.Edit5.Text); // межповерочный интервал
c := i/12*365 // преобразуем месяци в дни
except
i := 0; // если например в Edit5 ввели текст, то возникла ошибка преобразования в число
end;
si.DateTimePicker2.Date := si.DateTimePicker1.Date + c; // прибавляем i дней
DecodeDate(si.DateTimePicker2.DateTime, YY, MM, DD); // декодируем дату поверки
si.Edit6.Text := (IntToStr(MM)); // извлекаем месяц
si.Edit8.Text := (IntToStr(YY)); // извлекаем год
m := StrToInt (si.Edit6.Text);
y := StrToInt (si.Edit8.Text);
if (m >=1) and (m <=3) then si.Edit7.Text := '1'; // определяем квартал
if (m >=4) and (m <=6) then si.Edit7.Text := '2';
if (m >=7) and (m <=9) then si.Edit7.Text := '3' ;
if (m >=10) and (m <=12) then si.Edit7.Text := '4';
end;
Нашел такой скрипт, считает дату следующей поверки приборов и записывает год и квартал поверки. Очень удобно, но межповерочный интервал у автора считается в днях (месяцы преобразует в дни). Мне же надо чтобы прибавлялись не дни, а месяцы, или годы. Если подредактировать этот скрипт, то это можно сделать, но так как в году не всегда 365 дней, то данные получаются некорректные.