Página 1 de 2

Sumar más de 24 horas

Publicado: 21 Jun 2011, 18:10
por JOSE ANTONIO RUZ
Hola,

Uno de mis problemas de hoy es el siguiente:

Tengo una tabla con un campo %TIEMPO% de tipo Hora (HH:MM:SS) que me indica el tiempo empleado para determinada tarea.

Por una serie de circunstancias, he creado un proceso donde recorro los registros de esta tabla y los almaceno en el campo %TOTAL-TIEMPO% de una tabla maestra de esta (no uso actualizaciones porque hay muchas variables implicadas y lo veo mejor así, de todas formas el almacenamiento lo hace bien, por lo que no es por esto por lo que busco ayuda), sino porque cuando me suma 24:00:07, por ejemplo, me muestra 00:00:07 y como he de ordenar por el campo que contiene la suma, me da 00:00:07 menor que 23:59:59, porque ha completado un día y se queda con 00:00:07.

Mis preguntas sobre esto son:

1. ¿Dónde puedo ver si es 1, 2 o más días lo que se va acumulando en el campo %TOTAL-TIEMPO%?

2. ¿No se almacena en ninguna parte y se pierden los días?

3. ¿Si la función fComponerHora() no da horas mayores de 24, cómo puedo mostrar:

132:25:48 ó, por ejemplo: 05 días 12 h. 25 min. 48 seg.

Gracias a todos por leerme.

horas

Publicado: 21 Jun 2011, 18:37
por Jonatan
Personalmente usaría 4 campos:

FechaInicial
HoraInicial
FechaFinal
HoraFinal

Con esos datos podría saber cuantos días y horas pasaron.

Saludos cordiales

Publicado: 21 Jun 2011, 18:50
por JOSE ANTONIO RUZ
Hola Jonatan,

Al margen del asunto te diré que he estado ya dos veces en Toluca, tierra linda y querida y que la primera vez me vine con lo mejor.

Verás, no soy nuevo, pero como si lo fuese... jejeje

Yo uso esos campos para saber el tiempo que ha durado un evento. Ahora bien, el problema es que se suceden varios eventos en fechas y horas distintos, todos sé cuánto duran, pero no sé cómo sumar todos los tiempos parciales, podríamos decir, para que la suma de todos ellos me la muestre en, por ejemplo: 137:52:14 para 137 horas, 52 min., 14 seg.

Gracias por tu aportación.

Publicado: 21 Jun 2011, 19:07
por catarso
Hola JOSE ANTONIO RUZ
Lo mejor para esto, es tener 3 campos (Horas minutos, segundos) de esta forma no tendras problemas en el momento de sumar, ya que el resultado de segundos lo divides por 60 y te da los minutos que lo añades al total de minutos y el resto de la division son segundos, el resultado de minutos lo divides por 60 y te da las horas que se lo sumas al total de horas y el resto son los minutos, el total de hotas lo divides por 24 y te da los dias y el resto son las horas
Espero te sirva

horas

Publicado: 21 Jun 2011, 19:24
por Jonatan
Hola José Antonio, que bueno que hayas estado por estas tierras, espero que todo haya salido bien :D

Lo que comenta catarso es una buena idea, incluso yo lo manejaría solamente con segundos. De los segundos puedes obtener los minutos, horas y días.

Saludos cordiales

Publicado: 21 Jun 2011, 19:43
por JOSE ANTONIO RUZ
Hola Catarso y Jonatan,

Para Jonatan: Todo me ha salido muy bien, gracias.

Respecto del asunto en cuestión, voy a crear 4 campos fórmula numérica en la tabla histórica que usaré para alimentar otros tantos campos numéricos en la tabla maestra.

El tiempo formateado lo voy a implementar en una función que será llamada desde el mismo control de informe, así me servirá para retornar diversos formatos en función del requerido e, incluso, retornar una cadena vacía.

Muchas gracias a todos.

Publicado: 21 Jun 2011, 20:11
por carlosfi
Jonatan, quisiera me explicaras como se hace para sacar segundos, minutos, horas, dias, a partir de los segundos. Te estaria muy agradecido.


Muchas Gracias

datos

Publicado: 21 Jun 2011, 22:38
por Jonatan
Pues solo es necesario dividir los segundos que tenemos entre los de cada elemento que deseamos:

set SegundosTotales = 560,000
set Dias = fEntero( 560,000 / 86,400 )
set SegHoras = 560000 r 86400
set Horas = fEntero( SegHoras / 3,600)
set SegMinutos = SegHoras r 3600
set Minutos = fEntero(SegMinutos / 60 )
set Segundos = SegMinutos r 60

La constante "r" en velneo extrae el resto de una división.
Las variables Dias,Horas,Minutos y Segundos contendrían los valores.

Saludos cordiales

Publicado: 22 Jun 2011, 21:59
por carlosfi
Me salioooooooooooooo que idolo este Jonatan,,,,, levanto mapa para que los vean.

Esta dentro de un mapa levantado en otro hilo, pero se ven los calculos.

Espero ayude a alguien.

Publicado: 22 Jun 2011, 22:01
por carlosfi
Este ejemplo se puede utilizar bien en presupuetos con un periodo de tiempo valido, una vez que se llega a cierto tiempo se bloquea y queda sin validez, o directamente se elimina.