Jours Fériés
Jours fériés
Cette fonction permet de savoir si un jour est férié, sans avoir à les gérer dans une table !!
=> Vous avez également besoin de la fonction "fnPaques" (voir plus bas...)
Function IsFerie(Jour As Variant) As Boolean 'd'après Ole P Erlandsen Dim ListeFeries(1 To 11) As Long, i As Integer Dim tDate As Long, annee As Integer IsFerie = False tDate = CDate(Jour) If tDate < 1 Then Exit Function annee = Year(tDate) If annee < 1900 Then Exit Function 'remplit la liste des fériés ListeFeries(1) = CDate("1/1/" & annee) 'Jour de l'An ListeFeries(2) = fnPaques(annee) + 1 'Lundi de Pâques ListeFeries(3) = ListeFeries(2) + 38 'Jeudi Ascension ListeFeries(4) = ListeFeries(2) + 49 'Lundi Pentecôte ListeFeries(5) = CDate("1/5/" & annee) '1er Mai ListeFeries(6) = CDate("8/5/" & annee) '8 Mai ListeFeries(7) = CDate("14/7/" & annee) '14 Juillet ListeFeries(8) = CDate("15/8/" & annee) '15 Août ListeFeries(9) = CDate("1/11/" & annee) 'Toussaint ListeFeries(10) = CDate("11/11/" & annee) '14-18 ListeFeries(11) = CDate("25/12/" & annee) 'Noël ' compare la date entrée avec la Liste des Fériés i = 1 While i <= UBound(ListeFeries) And IsFerie = False If tDate = ListeFeries(i) Then IsFerie = True i = i + 1 Wend End Function
Fonction qui retourne la date de pâques selon l'année transmise :
Public Function fnPaques(wAn%) As Date 'Pâques est le dimanche qui suit le quatorzième jour de la 'Lune qui tombe le 21 mars ou immédiatement après '** A titre d'info :************' '** dtVenSaint = fPaques - 2****' '** dtLunPaq = fPaques + 1******' '** dtAscension = fPaques + 39**' '** dtDimPent = fPaques + 49****' '** dtLunPent = fPaques + 50****' Dim wA%, wb%, wC%, wD%, wE%, wF%, wG%, wH% Dim wI%, wJ%, wK%, wL%, wM%, wN%, wP% wA = wAn Mod 19 'Calcul du rang de l'année dans le cycle lunaire qui a 19 ans wb = wAn \ 100 'Calcul du siècle wC = wAn Mod 100 'Calcul du rang de l'année dans le siècle wD = wb \ 4 wE = wb Mod 4 wF = (wb + 8) \ 25 wG = (wb - wF + 1) \ 3 wH = (19 * wA + wb - wD - wG + 15) Mod 30 wI = wC \ 4 wK = wC Mod 4 wL = (32 + 2 * wE + 2 * wI - wH - wK) Mod 7 wM = (wA + 11 * wH + 22 * wL) \ 451 wN = (wH + wL - 7 * wM + 114) \ 31 'détermine le mois wP = (wH + wL - 7 * wM + 114) Mod 31 'détermine le jour fnPaques = DateSerial(wAn, wN, wP + 1) End Function
Dernière modification : 08/02/2010 02:08
Catégorie : Les mémos - Dates - Heures
Page lue 9777 fois