Différence entre deux dates
- Clique:
- 6069
Réponse
Petite fonction pour déterminer en année mois jour la différence entre 2 dates en année, mois et jours.
On part du principe que la
Public Function f_ddp(dtdate1 As Date, dtdate2 As Date) As String Dim datetmp As Date 'pour gérer l'ordre des dates if date1 > date2 then ' on permute les dates datetmp = dtdate2 dtdate2 = dtDate1 else datetmp = dtdate1 end if nban = DateDiff("yyyy", datetmp, dtdate2) ' détermination du nombre d'annnée datetmp = DateAdd("yyyy", nban, datetmp) ' on ajoute l'année pour qu'il ne reste que des mois en différence nbmois = DateDiff("m", datetmp, dtdate2) ' détermination du nombre de mois datetmp = DateAdd("m", nbmois, datetmp) ' on ajoute les mois pour qu'il ne reste que des mois en différence ' si la différence de mois est négative, ' on supprime une année et ajoute 12 mois pour revenir positif If nbmois < 0 Then nban = nban - 1 nbmois = nbmois + 12 End If nbjrs = DateDiff("d", datetmp, dtdate2) ' détermination du nombre de jours ' si le nombre de jours est négatif ' on supprime un mois et on ajoute le 30 jours If nbjrs < 0 Then nbmois = nbmois - 1 ' idéalement on devrait déterminer le nombre de jours du mois ' c'est ici que la fonction est à améliorer nbjrs = nbjrs + 30 End If f_ddp = nban & " - " & nbmois & " - " & nbjrs End Function