Array
(
)

Calcular feriados variaveis

TatuWeb
   - 30 mar 2004

Alguem tem alguma rotina para calcular o dia de feriados variaveis tipo pascoa e carnaval. Eu consegui uma para calcular o dia de pascoa mais falta os outros feriados. Parece que o carnaval e 40 dias antes da pascoa, mas não tenho certeza. Alguem sabe ao certo informar isso. E os outros feriados moveis. Como eu faço?

joilson_gouveia
   - 30 mar 2004

Estude as funções abaixo:
Function SeDiaUtil(rData:TDateTime):Boolean;
type
DefineVetor = Array[1..13] Of TDateTime;
var
wAno,wMes,wDia] := StrToDate(´01/01/´+Copy(DT,7,4));
dia[02] ] := StrToDate(´01/05/´+Copy(DT,7,4));
dia[04] ] := StrToDate(´12/10/´+Copy(DT,7,4));
dia[06] ] := StrToDate(´15/11/´+Copy(DT,7,4));
dia[08] ] := dAux-1;
dia[10] ] := dAux+44;
dia[12] ] := dAux+107;
end
Else
begin
dia[09] ] := dAux;
dia[11] ] := dAux+107;
end;
teste := True;
For I := 1 To 13 Do
begin
If DP1 = dia[I] Then
teste := False;
end;
If DayOfWeek(DP1) = 1 Then
teste := False;
If DayOfWeek(DP1) = 7 Then
teste := False;
Result := teste;
end;
Function RetornaDiaUtil(dData:TDateTime;nDias:Integer):TDateTime;
var
Datatemp:TDatetime;
i:Integer;
begin
Datatemp := dData;
for i := 1 to nDias do
begin
Datatemp := Datatemp + 1;
while not SeDiaUtil(Datatemp) do
Datatemp := Datatemp + 1;
end;
Result := Datatemp;
end;