Eu criei esta rotina para mim, vê se vira para vc tb. function DiaUtil(pData : String) : Boolean; var dtCheck : TDate; Feriados : String; Dia,Mes,Ano : Word; DiaMes : String; begin Result := False; //Para alimentar a String com outros feriados, usar formato DD/MM, seguindo o padrão abaixo: Feriados := '01/01 23/02 24/02 09/04 21/04 01/05 10/06 09/07 07/09 12/10 02/11 15/11 25/12';
dtCheck := StrToDate(pData); Result := (dayofweek(dtCheck) in [2..6]); DecodeDate(dtCheck,Ano,Mes,Dia); DiaMes := FormatFloat('00',Dia) + '/' + FormatFloat('00',Mes); if Result then Result := Pos(DiaMes,Feriados) < 1; end; Júnior Coelho. Desenvolvimento de Sistemas * (11) 3266 - 1286 * (11) 7175 - 1885 * [EMAIL PROTECTED] -----Mensagem original----- De: Rogério [mailto:[EMAIL PROTECTED] Enviada em: quarta-feira, 1 de dezembro de 2004 11:28 Para: [EMAIL PROTECTED] Assunto: Re: [delphi-br] Re: DIAS ÚTEIS Já testei, é isto mesmo... só tem um problema... Segunda Feira de carnaval, não acusa como sendo um feriado (Feriado Bancário) ! Na redoma, este dia não é um dia útil. (Acho que existem outros feriados que esta função não considera... vou checar.) Mas ja é uma boa opção para não se utilizar uma tabela com os feriados, ácho que só precisa de uns ajustes. []'s ----- Original Message ----- From: "MOITA" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, December 01, 2004 12:20 PM Subject: Re: [delphi-br] Re: DIAS ÚTEIS 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 -- <<<<< 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 <*> 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