Para tratar datas use: evento OnExit do objeto try StrToDate(DBEdit1.Text); except on EConvertError do // Tratamento do erro ShowMessage('Data inválida!'); end;
Para tratar datas em intervalo de tempo use o decodedate (coloque na cláusulas uses do seu projeto a DateUtils) Segue um exemplo de uso do DecodeDate para estudo: Para sua necessidade adapte este código pois não sei bem o que vc quer...vc poderia impor uma condição para suas datas usando DecodeDate tipo var Data: String; ano,mes,dia, ano1,mes1,dia1: word; begin decodedate(StrtoDate(MaskEdit1.Text),ano,mes,dia); decodedate(StrtoDate(Date), ano1,mes1,dia1); if (Mes=Mes1) then begin .....suas condições end else ......outras condições end; // Segue uma procedure para datas usando DecodeDate (**********************Usando datas de um modo geral*************************) procedure TForm1.BitBtn1Click(Sender: TObject); var Ano , Mes , Dia : Word; Ano1, Mes1, Dia1: Word; Ano2, Mes2, Dia2: Word; Data : TDateTime; cData : string; begin DecodeDate(StrToDate(MaskEdit1.Text), Year1, Month1, Day1); DecodeDate(StrToDate(MaskEdit2.Text), Year2, Month2, Day2); if (Dia1 = Dia2) and (Mes1 = Mes2) then begin Dia := 0; Mes := 0; Ano := Ano2 - Ano1; end else begin Data := StrToDate(MaskEdit2.Text)-StrToDate(MaskEdit1.Text); cData := DateToStr( Data ); DecodeDate(Data, Ano, Mes, Dia); if DateToStr( Data ) = '00/00/00' then begin Dia := 00; Mes := 00; Ano := 00; end; if Mes > 0 then Mes := Mes - 1; Ano := Ano-1900; if (Dia1 = Dia2) then begin Dia := 0; Mes := Mes + 1; end end; Edit1.Text := FloatToStr( Dia ); Edit2.Text := FloatToStr( Mes ); Edit3.Text := FloatToStr( Ano ); Label10.Caption := IntToStr(Ano)+' anos, '+IntToStr(Mes)+' meses e '+IntToStr(Dia)+' dias'; end; Sds, Neto ----- Original Message ----- From: "Denise Ferreira" <[EMAIL PROTECTED]> To: "Delphi" <[EMAIL PROTECTED]> Sent: Saturday, September 25, 2004 10:20 AM Subject: [delphi-br] Tatamento de data... Olá... Pessoal, preciso de uma ajuda na situação abaixo: utilizo campos DBEdits.... - Preciso de uma rotina para verificar se meus campos data são válidos. - Preciso de uma rotina que verifique se a data de admissão está dentro do mês corrente, ou seja, que não pretença no mês passado nem no mês futuro. - Preciso de uma rotine que verifique que a data de demissão não seja menor que a data de admissão. Bjos... Denise __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com [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 <*> 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