Bonjour à tous,

J'essaye de calculer la différence entre 2 dates, en 3 unités de mesure (Année/Mois/Jours)

Un exemple plus parlant :

La différence entre 01/01/2012 et 02/02/2013 est de 1 an, 1 mois, et 1 jour.

J'ai essayé plusieurs méthodes, la dernière en date étant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
        Dim datedebut As Date = New Date(1992, 1, 28)
        Dim datefin As Date = New Date(2009, 9, 1)
 
        Dim resultatAnnee As Decimal
        Dim resultatMois As Decimal
        Dim resultatJours As Decimal
 
 
        Dim totaljours As Long
        Dim totalmois As Long
        Dim totalannee As Long
 
 
 
        totaljours = DateDiff(DateInterval.DayOfYear, datedebut, datefin)
        totalmois = DateDiff(DateInterval.Month, datedebut, datefin)
        totalannee = DateDiff(DateInterval.Year, datedebut, datefin)
 
 
        resultatAnnee = totalannee
        resultatMois = totalmois - (totalannee * 12)
        resultatJours = Math.Round(CDec((totaljours - (totalannee * 365.2425) - (resultatMois * 30.41666666667))))
 
 
        MsgBox(resultatAnnee.ToString & " ans " & resultatMois.ToString & " mois " & resultatJours.ToString & " jours") 'Retourne 17 ans, 8mois et -26 jours ...
Qui aurait pu convenir sauf dans le cas où le jour de Date1 est en fin de mois et celui de Date2 en début de mois ...


Est-ce quelqu'un aurait une petite idée ?
En vous remerciant d'avance !