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

 

Responder a