Ver Mensaje Individual
  #2  
Antiguo 24-07-2007
gabrielkc gabrielkc is offline
Miembro
 
Registrado: jun 2007
Ubicación: Chihuahua Mexico
Posts: 118
Reputación: 17
gabrielkc Va por buen camino
Puedes guardar el valor en horas y minutos:

20:30=(20.50/24) . El campo tendria que ser de tipo Float

Para empezar tengo una duda.... como haces para meter mas de 24 hrs en una variable de tipo TTime. Según yo tendría que ser una variable TDateTime;

La parte Date guarda los dias completos (24 hrs) y la parte time las horas, minutos y segundos y etc. sobrantes. Puedes usar los tipos TTime, TDate y TDateTime como reales ( en realidad es lo que son)

La parte entera tiene el número de dias y la fraccionaria las hrs, mins, segs, etc.

El número obtenido por 24 te dá la cantidad total de horas más una fracción que representa minutos y segundos, la parte fraccionaria por 60 te dá la cantidad de minutos mas una fracción que representa la cantidad de segundos y así sucesivamente:

Código Delphi [-]
function HorasToReal(Hora:TDateTime):Real;
begin
 Result:=Hora;
end;


procedure RealToHoras(const AValue:Real; var Horas:Integer; var Minutes:Integer; var Seconds:Integer; var Miliseconds:Integer);
var Mins, Secs, MSecs:Real;
begin
  Horas:=Trunc(AValue*24);
  Mins:=Frac(AValue*24);
  Minutes:=Trunc(Mins*60);
  Secs:=Frac(Mins*60);
  Seconds:=Trunc(Secs*60);
  MSecs:=Frac(Secs*60);
  MSecs:=Trunc(MSecs*1000);
end;
Responder Con Cita