Ver Mensaje Individual
  #4  
Antiguo 16-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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)); // resultado: 121 hr 12 min 11 seg
end;

Y en cuanto a obtener los valores para usar en un ProgressBar, newtron ya te ha dado la solución.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita