1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| function IsPeriodeExpired(const APeriode: string; APeriodeEnd: Boolean = True): Boolean;
var
PeriodeDate: TDate;
PeriodYear, PeriodMonth, PeriodDay: Word;
begin
if Length(APeriode) = 6 then
begin
PeriodYear := StrToInt(Copy(APeriode, 1, 4));
if APeriode[5] = 'T' then
begin
if APeriodeEnd then
PeriodMonth := 3 * StrToInt(APeriode[6])
else
PeriodMonth := 1 + 3 * (StrToInt(APeriode[6]) - 1)
end
else
PeriodMonth := StrToInt(Copy(APeriode, 5, 2));
if APeriodeEnd then
PeriodDay := DaysInAMonth(PeriodYear, PeriodMonth) // System.DateUtils
else
PeriodDay := 1;
Result := EncodeDate(PeriodYear, PeriodMonth, PeriodDay) < Now();
end
else
raise Exception.CreateFmt('Période "%s" invalide', [APeriode]);
end; |
Partager