Bom dia amigo...

Tenho três funções q desenvolvi aqui no trabalho, veja se te ajuda:



Function CalcTime(Const TempoInic,TempoFim : TdateTime): string;
var
Calc : real;
begin
Calc:=Tempoparareal(TimeToStr(TempoFim))-Tempoparareal(TimeToStr(TempoInic));
if Calc < 0 then Calc:=Calc+24;
Result:=RealparaTempo(Calc,2);
end;

Function TempoparaReal(Const Tempo:string ):Real;
Var
P_1,P_2,P_3:string;

begin
P_1:=copy(Tempo,0,Pos(':',Tempo)-1);
P_3:= copy(Tempo,Pos(':',Tempo)+1,length(Tempo));
P_2:=copy(P_3,0,Pos(':',P_3)-1);
P_3:= copy(P_3,Pos(':',P_3)+1,length(P_3));


Result:= StrToInt(P_1)+(StrToInt(P_2))/60 +
(StrToInt(P_3)/3600);
end;

Function RealparaTempo(Const RealNum:Real; NumZerosHora:integer):String;
Var
Zeros,Hora,Minuto,Segundo:string;
Aux:variant;
i:integer;
begin
for i:=1 to NumZerosHora do
Zeros := Zeros+'0';

Aux:=Int(RealNum);
Hora:= FormatFloat(Zeros,Aux);
Minuto:= FloatToStr(Frac(RealNum));
Aux:= Int(StrToFloat(Minuto)*60);
Minuto:=FormatFloat('00',Aux);
Aux:= Frac(Frac(RealNum)*60);
Segundo:= FormatFloat('00',Round(Aux*60));
if StrToInt(Segundo) > 59 then
begin
Segundo:='00';
Minuto:=FormatFloat('00',StrToInt(Minuto)+1);
end;

if StrToInt(Minuto) > 59 then
begin
Minuto:='00';
Hora:=FormatFloat(Zeros,StrToInt(Hora)+1);
end;

Result:= Hora+':'+Minuto+':'+Segundo;

end;


[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a