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