Rogerio/Moita,

Exato, a função retorna TRUE se for um feriado.

Uso esta outra  funçao que deve dar um bom empurrão no que vc´s querem 
fazer.

{Colocar dateutil no USES }

Function QtdDiasUteis(nMes : Integer=0; nAno: Integer=0): Integer;
Function BoM(dData : TDateTime):TDateTime;
begin
  Result := dData - ExtractDay(dData) + 1;
end;
Function EoM(dData : TDateTime):TDateTime;
begin
  Result := BoM(IncMonth(dData,1))-1;
end;
var
  DataIni,
  DataFim : TDateTime;
Begin
  Result:=0;
  Try
     
DataIni:=StrToDateFmt('dd/mm/yyyy','01/'+StrZero(nMes,2)+'/'+StrZero(nAno,4));
  except
     Exit;
  end;
  DataFim:=Eom(DataIni);
  While DataIni<=DataFim do
  Begin
    If (DayOfWeek(DataIni) in [2,3,4,5,6]) and
       (Not Ve_Feriado(DataIni)) then
       Inc(Result);
    DataIni:=DataIni+1;
  End;
End;


[ ]´s
Moacir


----- Original Message ----- 
From: "Rogério" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, December 01, 2004 11:32 AM
Subject: Re: [delphi-br] Re: DIAS ÚTEIS


>
> Acho que estamos quase chegando lá...
> Só falta eu conseguir agora, fazer a função:
>
> Acha_a_Data_Dia_Util('01/10/2004',30)
> Que Retornará: 17/11/2004
>
> Se alguém conseguir tb...
> [ ]'s
>
> ----- Original Message ----- 
> From: "Prisma Sistemas - Moacir" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Wednesday, December 01, 2004 10:50 AM
> Subject: Re: [delphi-br] Re: DIAS ÚTEIS
>
>
>>
>> Paulo,
>>
>> Tenho usado esta função a um bom tempo com resultados satisfatórios:
>>
>> Function Ve_Feriado(dData : TDateTime=0) : Boolean;
>> var
>>   nMes : Integer;
>>   y,m,d:Word;
>>   G,I,J,C,H,L: Integer;
>>   E:TDateTime;
>>   dSexta : TDateTime;
>>   dCarnaval : TDateTime;
>>   ano : integer;
>> const
>>    FERIADOSFIXOS  : Array [1..12] of String =('01~',       // Jan
>>                                               '',          // Fev
>>                                               '',          // Mar
>>                                               '21~',       // Abr
>>                                               '01~',       // Mai
>>                                               '',          // Jun
>>                                               '',          // Jul
>>                                               '',          // Ago
>>                                               '07~',       // Set
>>                                               '12~',       // Out
>>                                               '02~15~',    // Nov
>>                                               '25~');      // Dez
>>
>> Begin
>>   If dData=0 then
>>      Result:=False
>>   else
>>   Begin
>>      Try
>>        nMes  :=StrToInt(FormatDateTime('mm',dData));
>>      except
>>        nMes  :=0;
>>      end;
>>      If (nMes<1) or (nMes>12) then
>>         Result:=False
>>      else
>>         Result:=Pos(FormatDateTime('dd',dData),FERIADOSFIXOS[nMes] )<>0;
>>   end;
>> //---- Calcula o Feriado de Carnaval e Sexta-Feira Santa
>>   DecodeDate(dData, Y, M, D);
>>   ano := y;
>>   G := ano mod 19;
>>   C := ano div 100;
>>   H := (C-C div 4-(8*C+13) div 25 + 19*G+15)mod 30;
>>   I := H-(H div 28)*(1-(H div 28)*(29 div(H+1))*((21-G)div 11));
>>   J := (ano + ano div 4 +I+2-C+C div 4) mod 7;
>>   L := I-J;
>>   m := 3+(L+40) div 44;
>>   d := L+28-31*(m div 4);
>>   //y := ano;
>>   E := EncodeDate(y,m,d);
>>   While DayOfWeek(E)>1 do
>>     E := E+1;
>>   //--- Sexta-feira Santa
>>   dSexta := E - 2;
>>   //--- Carnaval
>>   dCarnaval := E - 47;
>>   If (dData = dSexta) Or (dData = dCarnaval) then
>>      Result := True;
>> End;
>>
>>
>> [ ]´s
>> Moacir
>>
>>
>> ----- Original Message ----- 
>> From: "drummondfilho" <[EMAIL PROTECTED]>
>> To: <[EMAIL PROTECTED]>
>> Sent: Wednesday, December 01, 2004 8:59 AM
>> Subject: [delphi-br] Re: DIAS ÚTEIS
>>
>>
>>
>>
>> Gostaria de ajudar a montar o algoritmo se você puder me passar a
>> tabela de feriados ficaria muito feliz em poder ajudar.
>>
>> []'s
>> Paulo Drummond Filho
>> [EMAIL PROTECTED]
>>
>>
>>
>>
>>
>> -- 
>> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>>
>> Para ver as mensagens antigas, acesse:
>>  http://br.groups.yahoo.com/group/delphi-br/messages
>>
>> Para falar com o moderador, envie um e-mail para:
>>  [EMAIL PROTECTED] ou [EMAIL PROTECTED]
>>
>> Links do Yahoo! Grupos
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> -- 
>> No virus found in this incoming message.
>> Checked by AVG Anti-Virus.
>> Version: 7.0.289 / Virus Database: 265.4.4 - Release Date: 30/11/2004
>>
>>
>>
>>
>> -- 
>> No virus found in this outgoing message.
>> Checked by AVG Anti-Virus.
>> Version: 7.0.289 / Virus Database: 265.4.4 - Release Date: 30/11/2004
>>
>>
>>
>> -- 
>> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>>
>> Para ver as mensagens antigas, acesse:
>>  http://br.groups.yahoo.com/group/delphi-br/messages
>>
>> Para falar com o moderador, envie um e-mail para:
>>  [EMAIL PROTECTED] ou [EMAIL PROTECTED]
>>
>> Links do Yahoo! Grupos
>>
>>
>>
>>
>>
>>
>>
>>
>
>
>
> -- 
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>
> Para ver as mensagens antigas, acesse:
> http://br.groups.yahoo.com/group/delphi-br/messages
>
> Para falar com o moderador, envie um e-mail para:
> [EMAIL PROTECTED] ou [EMAIL PROTECTED]
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>
>
>
>
> -- 
> No virus found in this incoming message.
> Checked by AVG Anti-Virus.
> Version: 7.0.289 / Virus Database: 265.4.4 - Release Date: 30/11/2004
>
> 



-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.289 / Virus Database: 265.4.4 - Release Date: 30/11/2004



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a