Comment connaître le nombre de jours d'un mois donné ?
Visual Basic dispose de puissantes fonctions de base pour la manipulation des dates. On peut utiliser ces fonctions pour écrire des fonctions de plus haut niveau, comme par exemple : Comment connaître le nombre de jour d'un mois donné pour une certaine année. Accessoirement, une fonction auxiliaire permet déterminer si une année est bissextile ou non.
Les fonctions suivantes montre comment faire cela, en utilisant différents moyens et différentes fonctions de VB.
Public Function DaysInMonth(ByVal nMonth As Integer, ByVal nYear As Integer) As Integer
DaysInMonth = Day(DateAdd("d", -1, DateAdd("m", 1, DateSerial(nYear, nMonth, 1))))
End Function
Public Function DaysInMonth(ByVal nMonth As Integer, ByVal nYear As Integer) As Integer
DaysInMonth = Day(DateSerial(nYear, nMonth + 1, 0))
End Function
Public Function DaysInMonth(ByVal nMonth As Integer, ByVal nYear As Integer) As Integer
If nMonth = 12 Then
DaysInMonth = Day(DateSerial(nYear + 1, 1, 1) - 1)
Else
DaysInMonth = Day(DateSerial(nYear, nMonth + 1, 1) - 1)
End If
End Function
Public Function DaysInMonth(ByVal nMonth As Long, ByVal nYear As Long) As Long
Select Case nMonth
Case 2
If isLeapYear(nYear) Then
DaysInMonth = 29
Else
DaysInMonth = 28
End If
Case 4, 6, 9, 11
DaysInMonth = 30
Case Else
DaysInMonth = 31
End Select
End Function
La fonction suivante détermine si une année donnée est bissextile ou non. Elle est utilisée par la méthode précédente.
Public Function isLeapYear(ByVal nYear As Long)
isLeapYear = ((nYear Mod 4 = 0) And (nYear Mod 100 <> 0)) Or (nYear Mod 400 = 0)
End Function
Pour aller plus loin
|
Date de publication : 16 septembre 2002
Dernière modification : 25 février 2007
Rubriques : Date & heure
Mots-clés : date, dates, année, années, mois, jours, jour, Day, DateSerial, DateAdd, DateDiff, bissextile |