Cita:
|
Cuando muestro tiempo restante (durTotal -now) si la duracción total supera en unas 12 horas o un dia me la muestra mal.
|
Hola.
Para mostrar más de 24 horas sin que te un resultado erróneo:
Código Delphi
[-]
uses DateUtils;
function MostrarHoras(const Ini,Fin: TDateTime): string;
var
h,m,s: Word;
begin
h:= 0;
if DaysBetween(Ini,Fin) > 0 then
h:= DaysBetween(Ini, Fin) * 24;
h:= h + HourOf(Ini - Fin);
m:= MinuteOf(Ini - Fin);
s:= SecondOf(Ini - Fin);
Result:= Format('%3d hr %3d min %3d seg',[h,m,s]);
end;
Ejemplo de llamada:
Código Delphi
[-]
var
d1,d2: TDateTime;
begin
d1:= StrToDateTime('29/4/2011 09:03:01');
d2:= StrToDateTime('04/5/2011 10:15:12');
ShowMessage(MostrarHoras(d1,d2)); end;
Y en cuanto a obtener los valores para usar en un ProgressBar,
newtron ya te ha dado la solución.
Saludos.