In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Calcular diferencia Horas

Foro público de Xailer en español
Responder
paco-ssi
Mensajes: 390
Registrado: Lun Feb 07, 2005 4:17 pm

Calcular diferencia Horas

Mensaje por paco-ssi »

Alguien me puede ayudar para poder calcular las horas que hay entre:
ejemplo: las 18:00 del 15/05/05 y las 05:00 del 17/05/05
Gracias:
Paco V
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9473
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Calcular diferencia Horas

Mensaje por ignacio »

Paco,
Pasalo todo a segundos y luego lo restas. Con las dos funciones de
conversión que incluyo lo tienes fácil.
Un saludo,
FUNCTION SecToTime(nSec)
LOCAL nHor, nMin
nHor := Int(nSec/3600)
nSec := nSec - (nHor*3600)
nMin := Int(nSec/60)
nSec := nSec - (nMin*60)
RETURN StrZero(nHor,2)+":"+StrZero(nMin,2)+":"+StrZero(nSec,2)
//---------------------------------------------------------- -----------------//
FUNCTION TimeToSec(cTime)
LOCAL nHor, nMin, nSec
nHor := Val(Substr(cTime,1,2))
nMin := Val(Substr(cTime,4,2))
nSec := Val(Substr(cTime,7,2))
RETURN ( (nHor*3600) + (nMin*60) + nSec )
"Paco V." <paco-ssi@usuarios.retecal.es> escribió en el mensaje
news:4342c3b0$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Alguien me puede ayudar para poder calcular las horas que hay entre:
> ejemplo: las 18:00 del 15/05/05 y las 05:00 del 17/05/05
>
> Gracias:
>
> Paco V
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
paco-ssi
Mensajes: 390
Registrado: Lun Feb 07, 2005 4:17 pm

Calcular diferencia Horas

Mensaje por paco-ssi »

Gracias Ignacio.
Pero sin probarlo veo que no tengo ningun control sobre el dia.
En este caso hay una diferencia de casi dos dias.
Mi problema es controlar esos dos dias.
Paco V
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
news:4342c4c8$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Paco,
>
> Pasalo todo a segundos y luego lo restas. Con las dos funciones de
> conversión que incluyo lo tienes fácil.
>
> Un saludo,
>
> FUNCTION SecToTime(nSec)
>
> LOCAL nHor, nMin
>
> nHor := Int(nSec/3600)
> nSec := nSec - (nHor*3600)
> nMin := Int(nSec/60)
> nSec := nSec - (nMin*60)
>
> RETURN StrZero(nHor,2)+":"+StrZero(nMin,2)+":"+StrZero(nSec,2)
>
> //---------------------------------------------------------- -----------------//
>
> FUNCTION TimeToSec(cTime)
>
> LOCAL nHor, nMin, nSec
>
> nHor := Val(Substr(cTime,1,2))
> nMin := Val(Substr(cTime,4,2))
> nSec := Val(Substr(cTime,7,2))
>
> RETURN ( (nHor*3600) + (nMin*60) + nSec )
>
>
> "Paco V." <paco-ssi@usuarios.retecal.es> escribió en el mensaje
> news:4342c3b0$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Alguien me puede ayudar para poder calcular las horas que hay entre:
>> ejemplo: las 18:00 del 15/05/05 y las 05:00 del 17/05/05
>>
>> Gracias:
>>
>> Paco V
>>
>
>
jrcpoli
Mensajes: 240
Registrado: Mié Oct 25, 2006 8:55 pm

Calcular diferencia Horas

Mensaje por jrcpoli »

Saludos:
Basicamente lo que tienes que hacer es:
Primero restar los días d:= (fecha1 - fecha2) * 86400 esto da segundos de
los días trascurridos.
Segundo calcular en segundos la diferencia transcurrida entre la hora del
primer dia y las 24 horas hd1 := 86400 - segundos hasta la hora de ese
primer día.
Tercero calcular los segundos trascurridos en la segunda fecha hd2 :=
86400 - segundos hasta la hora de la segunda fecha
Cuarto segundos := d - ( hd1 + hd2) y tendrás los segundos desde una hora a
otra con los días incluidos.
Ejemplo. las 12:00 del 05/10/2005 y las 17:00 del 08/10/2005
Total de segundos d:= (05/10/2005 - 08/10/2005) * 86400 = 259200segundos
Segundos del primer día hasta las 24horas hd1 := 86400 - 12horas en segundos
son 43200 hd1 = 43200
Tercero de la segunda fecha hd2 := 86400 - las 17h en segundos son 61200
esto da 25200
Cuarto 259200 - (43200+25200) = 190800 segundos entre las dos fechas y las
horas.
Espero no haberme equivocado.
José Ramón Castro Polinio.
"Paco V." <paco-ssi@usuarios.retecal.es> escribió en el mensaje
news:4342e77a$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Gracias Ignacio.
>
> Pero sin probarlo veo que no tengo ningun control sobre el dia.
>
> En este caso hay una diferencia de casi dos dias.
> Mi problema es controlar esos dos dias.
>
> Paco V
> "Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
> news:4342c4c8$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Paco,
>>
>> Pasalo todo a segundos y luego lo restas. Con las dos funciones de
>> conversión que incluyo lo tienes fácil.
>>
>> Un saludo,
>>
>> FUNCTION SecToTime(nSec)
>>
>> LOCAL nHor, nMin
>>
>> nHor := Int(nSec/3600)
>> nSec := nSec - (nHor*3600)
>> nMin := Int(nSec/60)
>> nSec := nSec - (nMin*60)
>>
>> RETURN StrZero(nHor,2)+":"+StrZero(nMin,2)+":"+StrZero(nSec,2)
>>
>> //---------------------------------------------------------- -----------------//
>>
>> FUNCTION TimeToSec(cTime)
>>
>> LOCAL nHor, nMin, nSec
>>
>> nHor := Val(Substr(cTime,1,2))
>> nMin := Val(Substr(cTime,4,2))
>> nSec := Val(Substr(cTime,7,2))
>>
>> RETURN ( (nHor*3600) + (nMin*60) + nSec )
>>
>>
>> "Paco V." <paco-ssi@usuarios.retecal.es> escribió en el mensaje
>> news:4342c3b0$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>> Alguien me puede ayudar para poder calcular las horas que hay entre:
>>> ejemplo: las 18:00 del 15/05/05 y las 05:00 del 17/05/05
>>>
>>> Gracias:
>>>
>>> Paco V
>>>
>>
>>
>
>
José Ramón Castro.
Guest

Calcular diferencia Horas

Mensaje por Guest »

Paco,
Si sabes cuantos segundos hay en un día ya lo tienes.
Un saludo,
"Paco V." <paco-ssi@usuarios.retecal.es> escribió en el mensaje
news:4342e77a$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Gracias Ignacio.
>
> Pero sin probarlo veo que no tengo ningun control sobre el dia.
>
> En este caso hay una diferencia de casi dos dias.
> Mi problema es controlar esos dos dias.
>
> Paco V
> "Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
> news:4342c4c8$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Paco,
>>
>> Pasalo todo a segundos y luego lo restas. Con las dos funciones de
>> conversión que incluyo lo tienes fácil.
>>
>> Un saludo,
>>
>> FUNCTION SecToTime(nSec)
>>
>> LOCAL nHor, nMin
>>
>> nHor := Int(nSec/3600)
>> nSec := nSec - (nHor*3600)
>> nMin := Int(nSec/60)
>> nSec := nSec - (nMin*60)
>>
>> RETURN StrZero(nHor,2)+":"+StrZero(nMin,2)+":"+StrZero(nSec,2)
>>
>> //---------------------------------------------------------- -----------------//
>>
>> FUNCTION TimeToSec(cTime)
>>
>> LOCAL nHor, nMin, nSec
>>
>> nHor := Val(Substr(cTime,1,2))
>> nMin := Val(Substr(cTime,4,2))
>> nSec := Val(Substr(cTime,7,2))
>>
>> RETURN ( (nHor*3600) + (nMin*60) + nSec )
>>
>>
>> "Paco V." <paco-ssi@usuarios.retecal.es> escribió en el mensaje
>> news:4342c3b0$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>> Alguien me puede ayudar para poder calcular las horas que hay entre:
>>> ejemplo: las 18:00 del 15/05/05 y las 05:00 del 17/05/05
>>>
>>> Gracias:
>>>
>>> Paco V
>>>
>>
>>
>
>
Responder