sábado, 30 de novembro de 2013

Função Valida data no formato ddmmaa ou no formato ddmmaaaa



Function TESTA_DATA(Dado : string) : boolean;
var  SalvaFormato,
     DataExterna  : string;
     DataInterna  : TDateTime;
     Separador    : string;
begin
     Result := true;
     DataInterna := date;
     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;
          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; {TESTA_DATA}

Nenhum comentário:

Postar um comentário