pedrocaires Postado Março 16, 2015 Denunciar Share Postado Março 16, 2015 IF mês >= 1 and mês <= 12 THEN writeln(mês válido) IF (mês = 1 or mes = 3 or mês = 5 or mês = 7 or mês = 8 or mês = 10 or mês = 12) and (dia >= 1 and dia <= 31) THEN WRITELN(dia válido) ELSE IF (mês = 4 or mês = 6, or mês = 9 or mês = 11) and (dia >= 1 and dia <= 30) THEN (dia válido) ELSE IF (ano mod 4=0) and (dia <= 1 and Dia <= 29) THEN (mês = Fevereiro Bissexto e Dia Válido) ELSE IF (ano mod 4<>0) and (dia <= 1 and dia <= 28) THEN (mês = Fevereiro não Bissexto e Dia Válido) ELSE WRITELN(dia inválido) Mesmo se tiver certo alguém pode fazer um código pra mim que valide uma data e que respeite o ano ser bissexto, os dias dos meses e etc? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Março 16, 2015 Denunciar Share Postado Março 16, 2015 amigo, o intuíto do execício é para que voce aprenda a fazer sozinho unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} Function DATAVALIDA(Dado: string): Boolean; var SalvaFormato, DataExterna: string; DataInterna: TDateTime; Separador: string; begin Result := True; Separador := DateSeparator; while Pos(Separador, Dado) > 0 do Delete(Dado, Pos(Separador, Dado), 1); if Length(Dado) = 6 then Dado := Copy(Dado, 1, 2) + Separador + Copy(Dado, 3, 2) + Separador + '19' + Copy(Dado, 5, 2) else if Length(Dado) = 8 then Dado := Copy(Dado, 1, 2) + Separador + Copy(Dado, 3, 2) + Separador + Copy(Dado, 5, 4) else Result := False; if Result then begin SalvaFormato := ShortDateFormat; DataInterna := 0; try ShortDateFormat := 'd' + Separador + 'm' + Separador + 'y'; DataInterna := StrToDate(Dado); except on EConvertError do begin Result := False; ShortDateFormat := SalvaFormato; end; end; if Result then begin try ShortDateFormat := 'dd' + Separador + 'mm' + Separador + 'yyyy'; DataExterna := DateToStr(DataInterna); except on EConvertError do begin Result := False; ShortDateFormat := SalvaFormato; end; end; if Result and (DataExterna <> Dado) then Result := False; end; ShortDateFormat := SalvaFormato; end; end; procedure TForm1.Button1Click(Sender: TObject); begin if DATAVALIDA(trim(Edit1.Text)) then showmessage('Data Valida') else showmessage('Data Invalida') end; end. // Fonte: http://www.planetadelphi.com.br/dica/2796/verificar-se-uma-data-e-valida OBS: basta digitar a data no formato string no edit '29/02/1996' => Data Valida '29/02/1997' => Data Invalida abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
pedrocaires
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.