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+
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.