Jours fériés de l'année

Contenu du snippet

Bonjour,

Un truc toujours utile : connaitre les jours fériés... pour Noël et le 14 juillet... pas de problème, mais pour Paques, l'Ascension et la Pentecôte, pas si simple...

PS : en plus, pour épater la gallerie, l'explication du calcul de la date de Paques !

A+ Patrick MOIRE
http://jeux.cartes.free.fr
email:jeux.cartes@free.fr

Source / Exemple :


VERSION 5.00
Begin VB.Form Fond 
   AutoRedraw      =   -1  'True
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Jours fériés de l'année courante..."
   ClientHeight    =   7275
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   7755
   FillColor       =   &H00404040&
   ForeColor       =   &H00004080&
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   7275
   ScaleWidth      =   7755
   StartUpPosition =   2  'CenterScreen
End
Attribute VB_Name = "Fond"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Form_Load()

  Me.Font.Name = "Courier New"
  Me.Font.Size = 10
  
  DatePaques = fPaques(Year(Date))
   
  Me.ForeColor = &H8000&
  Print
  Print "  (C) Patrick Moire (bureau.patrick@libertysurf.fr"
  Print "  http://perso.libertysurf.fr/jeuxdecartes"
  Print
    
  Me.ForeColor = &H4080&
  Print " Jour Fixe :"
  Print " ~~~~~~~~~~~"
  
  Me.ForeColor = &H80000012
  Print "   Jour de l'an    : 01/01/" & Year(Date)
  Print "   Fête du travail : 01/05/" & Year(Date)
  Print "   Victoire 1945   : 08/05/" & Year(Date)
  Print "   Fête Nationnale : 14/07/" & Year(Date)
  Print "   Assomption      : 15/08/" & Year(Date)
  Print "   La toussaint    : 01/11/" & Year(Date)
  Print "   Armistice       : 11/11/" & Year(Date)
  Print "   Noël            : 25/12/" & Year(Date)
   
  Me.ForeColor = &H4080&
  Print
  Print " Jour Variable :"
  Print " ~~~~~~~~~~~~~~~"
  Print
  
  Me.ForeColor = &H8000&
  Print "      La date du dimanche de Pâques  est le premier dimanche"
  Print "  qui suit  la première pleine lune qui suit  l'équinoxe  de"
  Print "  printemps (21 mars).  D'où le  décalage chaque année  mais"
  Print "  toujours à l'intérieur de 30 jours (révolution de la lune)."
  Print
  
  Me.ForeColor = &H80000012
  Print "   Paques          : "; Format(DatePaques, "dd/mm/yyyy")
  Print "   Lundi de paques : "; Format(DateAdd("d", 1, DatePaques), "dd/mm/yyyy")
  Print "   Ascension       : "; Format(DateAdd("d", 39, DatePaques), "dd/mm/yyyy")
  Print "   Pentecôte       : "; Format(DateAdd("d", 50, DatePaques), "dd/mm/yyyy")
   
  Me.ForeColor = &H8000&
  Print
  Print " Merci à Grégory Rousseau pour son code et Frederic Laurent "
  Print " pour son explication sur le calcul de la date de paques."
  
End Sub

 
Public Function fPaques(An%) As Date
 
  Dim a As Integer
  Dim b As Integer
  Dim c As Integer
  Dim d As Integer
  Dim e As Integer
  Dim f As Integer
  Dim g As Integer
  Dim h As Integer
  Dim i As Integer
  Dim j As Integer
  Dim k As Integer
  Dim l As Integer
  Dim m As Integer
  Dim n As Integer
  Dim p As Integer
   
    a% = An% Mod 19
    b% = An% \ 100
    c% = An% 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
    fPaques = DateSerial(An%, n%, p% + 1)
 
End Function

Conclusion :


Le code ci-dessus correspond au contenu d'un fichier .frm pour VB5.

A+

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.