Чтобы увеличить TSystemTime
, установите флажок , выполняющий арифметику на SYSTEMTIME .
Хотя, вероятно, будет сложно реализовать 128-битную арифметику в Inno Setup.
В качестве альтернативы, вы можете реализовать его самостоятельно:
procedure IncDay(var Year, Month, Day: Integer);
var
DIM: Integer;
begin
Inc(Day);
case Month of
1, 3, 5, 7, 8, 10, 12: DIM := 31;
2: if (Year mod 4 = 0) and ((Year mod 100 <> 0) or (Year mod 400 = 0)) then
DIM := 29
else
DIM := 28;
4, 6, 9, 11: DIM := 30;
end;
if Day > DIM then
begin
Inc(Month);
Day := 1;
if Month > 12 then
begin
Inc(Year);
Month := 1;
end;
end;
end;
procedure IncDays(var Year, Month, Day: Integer; Days: Integer);
begin
while Days > 0 do
begin
IncDay(Year, Month, Day);
Dec(Days);
end;
end;
function IncDaysStr(S: string; Days: Integer): string;
var
Year, Month, Day: Integer;
begin
Year := StrToInt(Copy(S, 1, 4));
Month := StrToInt(Copy(S, 5, 2));
Day := StrToInt(Copy(S, 7, 2));
IncDays(Year, Month, Day, Days);
Result := Format('%.4d%.2d%.2d', [Year, Month, Day]);
end;
Использовать как:
result :=
CompareStr(GetDateTimeString('yyyymmdd', #0,#0), IncDaysStr(InstallDatetime, 90)) <= 0;