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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| Function EstFerié(ByVal QuelleDate As Date) As Boolean
Dim anneeDate As Integer
Dim jourSem As Integer
Dim JoursFeries(1 To 12) As Date
Dim i As Integer
anneeDate = Year(QuelleDate)
JoursFeries(1) = CDate("01/01/" & anneeDate)
JoursFeries(2) = CDate("01/05/" & anneeDate)
JoursFeries(3) = CDate("08/05/" & anneeDate)
JoursFeries(4) = CDate("14/07/" & anneeDate)
JoursFeries(5) = CDate("15/08/" & anneeDate)
JoursFeries(6) = CDate("01/11/" & anneeDate)
JoursFeries(7) = CDate("11/11/" & anneeDate)
JoursFeries(8) = CDate("25/12/" & anneeDate)
JoursFeries(9) = JourDePaques(anneeDate)
' Lundi de Pâques = Paques + 1
JoursFeries(10) = JoursFeries(9) + 1
' Ascension = Paques + 39
JoursFeries(11) = JoursFeries(9) + 39
' Lundi Pentecôte = Paques + 50
JoursFeries(12) = JoursFeries(9) + 50
For i = 1 To 12
If QuelleDate = JoursFeries(i) Then
EstFerié = True
Exit For
End If
Next
'MsgBox ("Est FERIE ? : " & EstFerié)
End Function
Public Function JourDePaques(annee) As Date
Dim a, b, c, d, e, f, g, h, i, k, l, m, n, p As Integer
a = Int(annee Mod 19)
b = Int(annee \ 100)
c = Int(annee Mod 100)
d = b \ 4
e = b Mod 4
f = (b + 8) \ 25
g = (b - f + 1) \ 3
h = (19 * a + b - d - g + 15) Mod 30
i = c \ 4
k = c Mod 4
l = (32 + 2 * e + 2 * i - h - k) Mod 7
m = (a + 11 * h + 22 * l) \ 451
n = (h + l - 7 * m + 114) \ 31
p = (h + l - 7 * m + 114) Mod 31
JourDePaques = DateSerial(annee, n, p + 1)
End Function |
Partager