Função que retorna se a hora é válida ou não

Delphi

01/03/2005

Alguém sabe porque esta funcção não retona falso;

cHora := := ´45:00´;
fTestaHora(cHora);


function fTestaHora(cHora:String):Boolean;
var
   nHoraT,nMinutoT : Integer;
begin
   nHoraT   := StrToInt(Copy(cHora,1,2));
   nMinutoT := StrToInt(Copy(cHora,4,2));
   if (nHoraT > 23) then
     Begin
         Result := False;
     end;
end;



Jussimarrs

Jussimarrs

Curtidas 0

Respostas

Cristiam

Cristiam

01/03/2005

cHora := := ´45:00´;


Que tal por causa dessa linha? :wink:


GOSTEI 0
Massuda

Massuda

01/03/2005

Tirando o que o cristiam observou, tem outro problema que é o fato da sua rotina fTestaHora ter valor de retorno indefinido, já que ela retorna False apenas no caso de nHoraT > 23; nos outros casos, o valor de retorno dela é indefinido (provavelmente será um valor aleatório).


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

01/03/2005

o Massuda está certo. tente alterar a função para:

function fTestaHora(cHora:String):Boolean; 
var 
  nHoraT,nMinutoT : Integer; 
begin 
  nHoraT := StrToInt(Copy(cHora,1,2)); 
  nMinutoT := StrToInt(Copy(cHora,4,2)); 
  Result := nHoraT <= 23;
end;


e veja qual será o retorno


GOSTEI 0
Jussimarrs

Jussimarrs

01/03/2005

o Massuda está certo. tente alterar a função para:
function fTestaHora(cHora:String):Boolean; 
var 
  nHoraT,nMinutoT : Integer; 
begin 
  nHoraT := StrToInt(Copy(cHora,1,2)); 
  nMinutoT := StrToInt(Copy(cHora,4,2)); 
  Result := nHoraT <= 23;
end;
e veja qual será o retorno
:D-

:D [b:7c12ebfb29]Obrigado pelas Dicas.[/b:7c12ebfb29]


GOSTEI 0
POSTAR