Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Validar data

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Dica Validar data

    A pedido de um membro decidi postar aqui uma função que valida a data.
    O usuário pode muito bem postar uma data inválida, por exemplo : 31/06/2013, sendo que nesse mês em que estamos não possui dia 31, e obviamente também corrige outros erros mais simples como mês 13, ou dia 32, etc...

    Segue a função:

    function ValidaData(data: string): Boolean;
    var dia, mes, ano : integer;
    DiaCerto : TDate;
    begin
    if (Length(data)<6) or (Length(data)=7) then
    begin
    Result:= False;
    end
    else
    begin
    if Length(data)=6 then
    begin
    dia:= StrToInt(Copy(data,1,2));
    mes:= StrToInt(Copy(data,3,2));
    ano:= StrToInt('20' + (Copy(data,5,2)));
    if (mes>12) or (mes<1) then
    begin
    Result:= false;
    end
    else
    begin
    DiaCerto:= EncodeDate(ano , mes, 4); //Ano, mes, dia, é a data escolhida
    DiaCerto := StrToInt((Copy(DateToStr(EndOfTheMonth(DiaCerto)), 1,2))); //Pega o ultimo dia do mes data escolhida
    if (dia<1) or (dia>DiaCerto) then
    begin
    Result:= false;
    end
    else
    begin
    Result:= true;
    end;
    end;
    end
    else
    begin
    dia:= StrToInt(Copy(data,1,2));
    mes:= StrToInt(Copy(data,3,2));
    ano:= StrToInt(Copy(data,5,4));
    DiaCerto:= EncodeDate(ano , mes, 4); //Ano, mes, dia, é a data escolhida
    DiaCerto := StrToInt((Copy(DateToStr(EndOfTheMonth(DiaCerto)), 1,2))); //Pega o ultimo dia do mes data escolhida
    if (mes>12) or (mes<1) then
    begin
    Result:= false;
    end
    else
    begin
    if (dia<1) or (dia>DiaCerto) then
    begin
    Result:= false;
    end
    else
    begin
    Result := true;
    end;
    end;
    end;
    end;
    end;
    sigpic

    Decidi deixar de ser usuário e virar desenvolvedor
    Similar Threads

  • Font Size
    #2
    Quem sabe, sabe.

    valeu mesmo cara.

    Comment

    X
    Working...
    X