Jour ferié en vb.net

Contenu du snippet

Comme vous le savez surement, les fonctions "date" ont totalement changés entre Vb6 et Vb.NET.

J'ai passé pas mal de temps à modifiez une source VB6 indiquant si un jour est férié ou non et je vous en fait part.

Source / Exemple :


Function BooJourFerie(ByVal Jour As Date) As Boolean
        Dim JJ, AA, MM As Integer
        Dim NbOr, Epacte As Integer
        Dim PLune, Paques, Ascension, Pentecote As Date

        JJ = Microsoft.VisualBasic.Day(Jour)
        MM = Month(Jour)
        AA = Year(Jour)

        If JJ = 1 And MM = 1 Then BooJourFerie = True : Exit Function '1 Janvier
        If JJ = 1 And MM = 5 Then BooJourFerie = True : Exit Function '1 Mai
        If JJ = 8 And MM = 5 Then BooJourFerie = True : Exit Function '8 Mai
        If JJ = 14 And MM = 7 Then BooJourFerie = True : Exit Function '14 Juillet
        If JJ = 15 And MM = 8 Then BooJourFerie = True : Exit Function '15 Août
        If JJ = 1 And MM = 11 Then BooJourFerie = True : Exit Function '1 Novembre
        If JJ = 11 And MM = 11 Then BooJourFerie = True : Exit Function '11 Novembre
        If JJ = 25 And MM = 12 Then BooJourFerie = True : Exit Function '25 Décembre

        NbOr = (AA Mod 19) + 1
        Epacte = CType((11 * NbOr - (3 + Int((2 + Int(AA / 100)) * 3 / 7))) Mod 30, Integer)
        PLune = CDate("19/04/" & AA)
        PLune = PLune.AddDays(-((Epacte + 6) Mod 30))
        If Epacte = 24 Then PLune = PLune.AddDays(-1)
        If Epacte = 25 And (AA >= 1900 And AA < 2000) Then PLune = PLune.AddDays(-1)

        Paques = PLune.AddDays(-Weekday(PLune) + vbMonday + 7)   'Paques
        If JJ = Microsoft.VisualBasic.Day(Paques) And MM = Month(Paques) Then BooJourFerie = True : Exit Function

        Ascension = Paques.AddDays(38)   'Ascension
        If JJ = Microsoft.VisualBasic.Day(Ascension) And MM = Month(Ascension) Then BooJourFerie = True : Exit Function

        Pentecote = Ascension.AddDays(11)  'Pentecote
        If JJ = Microsoft.VisualBasic.Day(Pentecote) And MM = Month(Pentecote) Then BooJourFerie = True : Exit Function

        BooJourFerie = False
    End Function

A voir également

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.