Ver Mensaje Individual
  #4  
Antiguo 08-09-2003
Avatar de champy
champy champy is offline
Miembro
 
Registrado: sep 2003
Ubicación: Alicante, España
Posts: 75
Reputación: 23
champy Va por buen camino
Buenas el problema que tienes es que en TDateTime se estan almacenando tambien los milisegundos y tu quieres que la resta sea a nivel de SEGUNDO, pues bien... hagamos la resta eliminando todo lo que no queremos


Var
HoraInicio_Date : TDateTime;
HoraFin_Date : TDateTime;
HoraResultado_Date : TdateTime;
Fecha :String;
HoraInicio_Str : String;
HoraFin_Str : String;
Begin

//Primero me guardo un String con la Fecha que luego usare

Fecha := FormatDateTime('dd/mm/yyyy', now);

//Guardamos las fechas en el formato que queremos

HoraInicio_str := FormatDaeTime('hh:nn:ss', horaInicio_Date);
HoraFin_str := FormatDaeTime('hh:nn:ss', horaFin_date);

//Ahora movemos los Strings de nuevo a los DatTime
//De manera que los Milisegundos iguales en ambos
//al igual que el dia, mes y año

HoraInicio_Date := StrToDate(Fecha + ' '+HoraInicio_Str);
HoraFin_Date := StrToDate(Fecha + ' '+HoraFin_Str);

//Restamos ambos

HoraResultado_Date := HoraFin_Date - HoraInicio_Date;

// Si mostramos su valor en caso de que los iniciales fuesem
// 10/09/2003 10:14:25 430 y 10/09/2003 10:14:26 110
//Al hacer un formatDateTime con mascara 'hh:nn:ss' seria algo así

ShowMessage(FormatDateTime('hh:nn:ss', HoraResultado_date)); //Seria 00:00:01

end;

Esta en muchos pasos para que se vea claro pero lo puedes resumir...

Begin

HoraResultado_date := StrToDate(FormatDateTime(Fecha+' '+'hh:nn:ss', HoraInicio_Date )) - StrToDate(FormatDateTime(Fecha+' '+'hh:nn:ss', HoraFin_Date ))

End;

Espero que te sirva de ayuda y si tienes algún problema no dudes en preguntar, que aquí estamos todos para ayudarnos...
Responder Con Cita