Soyez le premier à donner votre avis sur cette source.
Snippet vu 8 593 fois - Téléchargée 58 fois
'----------------------------------------------------------------------- 'CETTE FONCTION N'EST PAS DE MOI! 'Elle est parue dans le SVM n°189 de Janvier 2001 p131 'Auteur: Xavier Milan '----------------------------------------------------------------------- 'mail:vbtom@free.fr 'site:http://vbtom.phidji.com '----------------------------------------------------------------------- 'Explications 'Command1 est le bouton où vous cliquez pour savoir si le jour est férié ou non 'Text1 est la TextBox ou vous tapez votre date au format jj/mm/aa 'Label1 est le Label ou apparait la réponses vrai/faux 'Vrai > Le jour est férié 'Faux > Le jour n'est pas férié Function Ferié(Jour As Date) As Boolean Dim JJ, AA As Integer Dim NbOr, Epacte As Integer Dim PLune, Paques, Ascension, Pentecote As Date JJ = Day(Jour) mm = Month(Jour) AA = Year(Jour) If JJ = 1 And mm = 1 Then Ferié = True: Exit Function '1 Janvier If JJ = 1 And mm = 5 Then Ferié = True: Exit Function '1 Mai If JJ = 8 And mm = 5 Then Ferié = True: Exit Function '8 Mai If JJ = 14 And mm = 7 Then Ferié = True: Exit Function '14 Juillet If JJ = 15 And mm = 8 Then Ferié = True: Exit Function '15 Août If JJ = 1 And mm = 11 Then Ferié = True: Exit Function '1 Novembre If JJ = 11 And mm = 11 Then Ferié = True: Exit Function '11 Novembre If JJ = 25 And mm = 12 Then Ferié = True: Exit Function '25 Décembre NbOr = (AA Mod 19) + 1 Epacte = (11 * NbOr - (3 + Int((2 + Int(AA / 100)) * 3 / 7))) Mod 30 PLune = CDate("19/04/" & AA) - ((Epacte + 6) Mod 30) If Epacte = 24 Then PLune = PLune - 1 If Epacte = 25 And (AA >= 1900 And AA < 2000) Then PLune = PLune - 1 Paques = PLune - Weekday(PLune) + vbMonday + 7 'Paques If JJ = Day(Paques) And mm = Month(Paques) Then Ferié = True: Exit Function Ascension = Paques + 38 'Ascension If JJ = Day(Ascension) And mm = Month(Ascension) Then Ferié = True: Exit Function Pentecote = Ascension + 11 'Pentecote If JJ = Day(Pentecote) And mm = Month(Pentecote) Then Ferié = True: Exit Function Ferié = False End Function Private Sub Command1_Click() Dim DateFerié As Date DateFerié = Text1.Text Label1.Caption = Ferié(DateFerié) End Sub
7 mai 2007 à 16:10
il manque une déclaration de variable ;) :
7 mai 2007 à 15:47
J'ai moi même codé cette fonction qui retourne les jours fériés (jour fériés "mobiles" compris) mais il y a beaucoup plus de lignes... Rien que le calcul de la dâte de Pâques par l'algorithme de Odin (trouvé sur Wikipédia) prend autant de lignes (bon Ok j'exagère :p) que cette fonction.
Dommage, j'aurais préféré des commentaires au niveau du calcul des dâtes des jours fériés mobile (ceux présents DANS le code sont...inutiles, les variables étant assez explicites ;)
Merci pour la source elle sera réutilisée !
27 févr. 2002 à 15:51
14 sept. 2001 à 22:16
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.