Moacir,

Pelo que entendi, esta funcao retorna True se a data especificada for um 
feriado ? Seria isso mesmo ?
  ----- Original Message ----- 
  From: Prisma Sistemas - Moacir 
  To: [EMAIL PROTECTED] 
  Sent: Wednesday, December 01, 2004 9: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]



        Yahoo! Grupos, um serviço oferecido por: 
             
                    São Paulo Rio de Janeiro Curitiba Porto Alegre Belo 
Horizonte Brasília  
             
       


------------------------------------------------------------------------------
  Links do Yahoo! Grupos

    a.. Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/
      
    b.. Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]
      
    c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço 
do Yahoo!. 



[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< 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