Visual Basic - Operaciones con fechas

Life is soft - evento anual de software empresarial
 
Vista:

Operaciones con fechas

Publicado por Francisco (14 intervenciones) el 29/05/2006 14:12:41
Hola amigos me podrían ayudar en lo siguiente; yo necesito una función que me calcule las horas y minutos que ha sucedido entre dos fechas , ejemplo

desde 29-05-2006 08:44 :10 hasta 29-05-2006 12:15 han transcurrido 04:29:10

osea el resultado debe estar expresado en horas, minutos, segundos

sabría agradecerle mucho sus colaboraciones .
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Operaciones con fechas

Publicado por Juan (93 intervenciones) el 29/05/2006 14:44:38
Bueno nunca lo he trabajado con dia mes y año, siempre el truquito lo he aplicado solo con horas pero creo que se puede adaptar.
Yo lo que hago es multiplico el numero de horas por 3600, el numero de minutos por 60 para ambas fechas y despues resto el valor de la mayor con el del menor.
A la diferencia le aplico la siguiente operacion
horas_pasadas = diferencia div 3600
diferencia = diferencia mod 3600
minutos_pasados = diferencia div 60
diferencia = diferencia mod seg
seg_pasados = diferencia

Ahora si las fecha son distintas, lo que deberias calcular es el numero de dias que han pasado entre la fecha menor y el dia anterior a la fecha mayor, multiplicarlo por 24 y a eso sumarle el numero de horas que han pasado desde las 12 de la mañana de ese dia hasta la hora que quieres procesar. Ojo las horas deben estar en formato militar.

A eso aun le queda un caso borde, y es que una fecha comienze en un dia, la otra al dia siguiente y no hayan pasado 24 horas, pero creo que es un caso facil de resolver.

Espero haberme explicado, si te gusta esta idea te puedo ayudar a refinarla si sigues posteando
Juan
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Operaciones con fechas

Publicado por Cecilia Colalongo (3116 intervenciones) el 29/05/2006 16:40:09
Puedes utilizar la función DateDiff, partiendo de:

f1=CDate("29-05-2006 08:44:10")
f2=CDate("29-05-2006 12:15:00")

d=DateDiff("s",f1,f2)

Que son en segundos: 12650

En horas: h=Int(12650/60/60) = 3 horas

En minutos: m=Int((d-(h*60*60))/60) = 30 minutos

En segundos: s=d-(h*60*60)-(m*60) =50 segundos

Por lo que no sé como llegas el resultado ¿4:29:10? ya que haciendo el cálculo manualmente el resultado correcto es 3:30:50
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Operaciones con fechas

Publicado por Juan (93 intervenciones) el 29/05/2006 16:55:57
Bueno por lo menos la logica de transformacion era la misma jejeejejeje
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Operaciones con fechas

Publicado por francisco (14 intervenciones) el 29/05/2006 19:46:15
Muchas gracias a Cecilia y a juan pondre en practica las dos formas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar