Resta de campos fecha en unformulario

Buenos días abusando de tu amabilidad, ya que no encuentro la manera de restar dos campos de fecha de un formulario y que el resultado me lo de en horas:minutos, he tratado con lo que he leído de los diferentes post encontrados aquí pero no me queda, use la función (diffecha) y el resultado me lo muestra 20:926 pero no encuentro la solución correcta y efectúo el calculo manual y veo que el resultado de las horas es correcto y el de los minutos me sobra el primer dígito de los tres que muestra.
Mucho agradecería tu ayuda y espero no distraer tu atención

1 respuesta

Respuesta
1
La función DateDiff (DiffFecha) no te sirve porque te va a dar el resultado en Horas o en minutos.
Si la diferencia entre las fechas nunca va a ser superior a 1 día puedes utilizar la siguiente función:
Public Function fDifFec(pIni As Date, pFin As Date) As Date
   Dim nHor As Long
   Dim nMin As Long
   Dim nSeg As Long
   nSeg = DateDiff("s", pIni, pFin)
   nMin = Int(nSeg / 60)
   nHor = Int(nMin / 60)
   nSeg = nSeg Mod 60
   nMin = nMin Mod 60
   fDifFec = TimeSerial(nHor, nMin, nSeg)
End Function
Gracias por la respuesta pero se me olvido en la pregunta inicial que si son de varios días por lo que tal vez no me funcione lo que me das como respuesta, no se si me pudiera dar otra orientada o respuesta ya que continuo en busca de la solución a este problema .
De antemano gracias por la ayuda.
Por lo visto hay que daros todo hecho, lo principal sería que entendieras lo que hace la función y así poder adaptarlo a tu uso concreto, si lo que quieres es que te de la función exacta, decirte que yo cobro por eso ;), no obstante te daré una pista:
EL problema es que si nHor > 23, TimeSerial te mete una fecha a partir del 31/12/1899, así que no se me ocurre ninguna solución para devolver el resultado en formato fecha, otra cosa sería si el resultado te valiera en formato texto (hh:mm:ss) ...
Ala!, cúrratelo un poquito :)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas