Function Datumspec(startdatum As Date, einddatum As Date) As String
'Door Mark xl
'deze functie lijkt uitgebreid, maar is bliksemsnel
Dim Jaren As Long, Maanden As Long, Dagen As Long
'jaren
Do While DateAdd("yyyy", 1, startdatum) <= einddatum
startdatum = DateAdd("yyyy", 1, startdatum)
Jaren = Jaren + 1
Loop
'maanden
Do While DateAdd("m", 1, startdatum) <= einddatum
startdatum = DateAdd("m", 1, startdatum)
Maanden = Maanden + 1
Loop
'dagen
Do While DateAdd("d", 1, startdatum) <= einddatum
startdatum = DateAdd("d", 1, startdatum)
Dagen = Dagen + 1
Loop
Select Case Dagen
Case 0
Case 1
Datumspec = "1 dag"
Case Is > 1
Datumspec = Dagen & " dagen"
End Select
Select Case Maanden
Case 0
Select Case Jaren
Case 0
Case 1
Datumspec = "1 jaar en " & Datumspec
Case Else
Datumspec = Jaren & " jaar en " & Datumspec
End Select
Case 1
Select Case Jaren
Case 0
Datumspec = "1 maand en " & Datumspec
Case 1
Datumspec = "1 jaar, 1 maand en " & Datumspec
Case Is > 1
Datumspec = Jaren & " jaar, 1 maand en " & Datumspec
End Select
Case Is > 1
Select Case Jaren
Case 0
Datumspec = Maanden & " maanden en " & Datumspec
Case 1
Datumspec = "1 jaar, " & Maanden & " maanden en " & Datumspec
Case Is > 1
Datumspec = Jaren & " jaar, " & Maanden & " maanden en " & Datumspec
End Select
End Select
If Right(Datumspec, 4) = " en " Then Datumspec = Replace(Mid(Datumspec, 1, Len(Datumspec) - 4), ",", " en")
End Function