Operação com horas

Delphi

24/09/2006

Olá meus amigos,


Novamente estou aki solicitando de vcs uma auxílio num sistema que estou criando...
Preciso subtrair do horário de início, o horário final, para saber quantos minutos durou uma rotina qualquer...

Experimentei fazer isso com dois campos do time TIME e coloquei os seguites horários: H.I. => 15:53 H.F. => 15:57.

O resultado foi 00, quando deveria mostrar 4.

Alguém pode me ajudar a resolver este probleminha.

Obrigado a todos e beijinhos...


Anjinho Loiro

Anjinho Loiro

Curtidas 0

Respostas

Will

Will

24/09/2006

Receba a diferença em uma variável do tipo TDateTime. Se você só quer mostrar na tela basta formatar:
Ex.
[color=green:7ef54bc26f]
var
HoraIni, HoraFim, HoraDif: TDateTime;
begin
HoraIni := StrToTime(´15:53:00´);
HoraFim := StrToTime(´15:57:00´);
HoraDif := HoraFim - HoraIni;

ShowMessage(FormatDateTime(´hh:nn:ss.zzz´, HoraDif));
end;
[/color:7ef54bc26f]

Se você quer mostrar a diferença em minutos faça assim:
[color=green:7ef54bc26f]
var
HoraIni, HoraFim, HoraDif: TDateTime;
Horas, Minutos, Segundos, MSegundos: Word;
begin
HoraIni := StrToTime(´15:53:00´);
HoraFim := StrToTime(´15:57:00´);
HoraDif := HoraFim - HoraIni;

DecodeTime(HoraDif, Horas, Minutos, Segundos, MSegundos);
end;
[/color:7ef54bc26f]

Tem ainda a função [b:7ef54bc26f]MinutesBetween[/b:7ef54bc26f] da unit [b:7ef54bc26f]DateUtils[/b:7ef54bc26f]


GOSTEI 0
Macario

Macario

24/09/2006

Ola.

Para medir o tempo de execucao de uma rotina (creio que no seu caso seja uma instrucao SQL) eu utlizo da seguinte forma.


var
  Inicio,Fim : DWord;

begin

  Inicio := GetTickCount;

  { bloco de codigo para execucao}


  Fim := GetTickCount;


  StatusBar.Panel[4].Text := FormatDateTime(´hh:mm:ss´,((Fim-Inicio)/1000/24/60/60));


end;











8)


GOSTEI 0
POSTAR