Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Esse código roda em Delphi?


pedrocaires

Pergunta

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?
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

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

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...