Código
* Autor: Marcos Calixto
* Data: 10/11/2010
* Responsavel pelo retorno do total de horas entre duas datas
* Onde dt1 é a data inicio e dt2 é a data fim
}
FUNCTION TotalHoras(dt1,dt2 : TDateTime):String;// 10/11/2010
var
h1,h2,ht : Integer;
m1,m2,mt : Integer;
d1,d2,mts : String;
m1s,m2s : String;
td1,td2 : Integer;
begin
if ( dt1 > 0 ) AND ( dt2 > 0 ) then
begin
if dt2 > dt1 then
begin
d1 := FormatDateTime('dd',dt1);
d2 := FormatDateTime('dd',dt2);
td1 := strtoint(d2) - strtoint(d1);
if td1 > 0 then
begin
td1 := td1 * 24;
end;
h1 := strtoint(FormatDateTime('HH',dt1));
m1s := (FormatDateTime('HH:MM',dt1));
m1 := strtoint(copy(m1s,4,2));
h2 := strtoInt(FormatDateTime('HH',dt2));
m2s := (FormatDateTime('HH:MM',dt2));
m2 := strtoint(copy(m2s,4,2));
ht := ((h2+td1) - h1 );
if m1 > m2 then
begin
ht := ht - 1;
mt := 60 - ( m1 - m2);
end else
begin
m1 := 60 - m1;
m2 := 60 - m2;
mt := ( m1 - m2 );
end;
if Length(inttostr(mt)) = 1 then
begin
mts := '0'+inttostr(mt);
end else
begin
mts := inttostr(mt);
end;
result := inttostr(ht)+':'+(mts)+':00';
end else
begin
result := 'A data Inicio não pode ser maior que a data término';
end;
end else
begin
result := 'Os dois campos são obrigatórios!';
end;
end;
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009