FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#1
|
|||
|
|||
Suma de Horas
Hola muchachos, tengo el siguiente problema, tengo un programa donde hago la suma de horas (hh:mm:ss) y el problema es que cuando supero las 24 horas en la suma el contador vuelve a 0 por ejemplo si la suma es 26:34:10 la hora suma que muestra es 2:34:10 y no las 26 horas, hay alguna forma de que las pueda transformar a 26 horas y seguir aumentando la suma cuando corresponda??
las horas las rescato de archivos de texto plano .txt ya que asi es como me las entregan, rescado los datos en variables string y hago las sumas con strtotime(variable) para obtener el total de las suma de las horas ojalá me puedan ayudar saludos Patho Última edición por Patho fecha: 16-10-2007 a las 16:53:04. |
#2
|
||||
|
||||
Apuesto que la función HoursBetween te ayudara con lo que necesitas, pero recuerda que debes pasarle el valor de la fecha y la hora, no solo la hora porque el algoritmo "creeria" que estas hablando de un solo dia .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#3
|
||||
|
||||
Otra opción sería no usar fechas y horas.
Al leer del archivo lo pasas todo a segundos y lo guardas en tipo Integer o Int64. Cuando necesites mostrar el texto, con una rutina haces las divisiones oportunas. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#4
|
|||
|
|||
solucionado
muchas gracias por los comentarios, lo solucione un poco antes que me despondieras Lepe pero justamente eso fue lo que hice pase todo a segundops y despues realice el paso inverso, aca les pondoi las funciones que use por si a alguien mas le sirva
//** para separar el string de la hora (hh:mm:ss) cada una por separado procedure Split (const Delimiter: Char; Input: string; const Strings: TStrings) ; begin Assert(Assigned(Strings)) ; Strings.Clear; Strings.Delimiter := Delimiter; Strings.DelimitedText := Input; end; // Transformacion de Hora a segundos donde Hora es un String (hh,mm,ss) function cantsegundos(horas:string):integer; var segundos : TStringList; hora,min,seg : longint; begin segundos := TStringList.Create; Split(':',horas, segundos); hora := strtoint(segundos[0]) * 3600; min := strtoint(segundos[1]) * 60; seg := strtoint(segundos[2]); cantsegundos := hora + min + seg; end; //Transformar de Segundos a Hora (hh:mm:ss) function SegToHour(segundos:longint):String; var hora,min,seg : longint; begin hora := segundos div 3600; min := (segundos mod 3600) div 60; seg := (segundos mod 3600) mod 60; SegToHour := inttostr(hora) + ':' + inttostr(min) + ':' + inttostr(seg); end; estas son las funciones que utilice gracias a todos por sus comentarios y sugerencias hasta la proxima Saludos Patho |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema con una suma | EfrainSanmiguel | HTML, Javascript y otros | 4 | 21-09-2007 16:57:59 |
Suma de 100 tablas dbf | Jucho69 | Conexión con bases de datos | 5 | 18-01-2007 20:20:35 |
Imprimir reportes con Suma de horas | rjsitruiz | Impresión | 5 | 30-06-2004 20:45:57 |
suma en consulta sql | pzala | Varios | 5 | 15-12-2003 02:06:05 |
Suma de horas II | YolandaM | Varios | 10 | 19-11-2003 22:05:39 |
|