secondo me datediff è abbastanza facile
codice:
Private Function CalcolaIntervallo(DatIni As String, OraIni As String, DatFin As String, OraFin As String) As String
'########################################################################################
'# la funzione restituisce il tempo trascorso espresso in giorni ore e minuti da una #
'# data e ora iniziale a una data e ora finale. #
'# si aspetta date in fomato dd/mm/yyyy e orari in formato hh:mm #
'########################################################################################
On Error GoTo lblError
Dim giorni As Integer
Dim ore As Integer, minuti As Long, secondi As Long
Dim d1 As String, d2 As String 'date estese
'controllo coerenza dati
If Not (IsDate(DatIni) Or IsDate(DatFin)) Then
CalcolaIntervallo = "-1"
Exit Function
End If
If Not (IsDate(OraIni) Or IsDate(OraFin)) Then
CalcolaIntervallo = "-1"
Exit Function
End If
If CDate(DatIni) > CDate(DatFin) Then
CalcolaIntervallo = "-1"
Exit Function
End If
'calcolo del tempo trascorso
d1 = DatIni & " " & OraIni
d2 = DatFin & " " & OraFin
secondi = DateDiff("s", d1, d2)
ore = Fix(secondi / 3600)
minuti = Fix(secondi / 60)
CalcolaIntervallo = ore & ":" & Format$(minuti, "00")
Exit Function
lblError:
Call GestErrore(Me.Name & ".CalcolaIntervallo")
End Function