|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
CALCULER LES FÊTES MOBILES
Information sur la source
Description
Ont à tous étés confronter, lorsqu'ont émule un quelconque calendrier avec les jours fériés, à la date de Pâques et des suivantes, ce petit programme vous donne les dates de la fête de Pâques, l'ascention, la pentecôte et d'autre qui sont tributaires de Pâques de 1900 à 2099
Source
- 'modulename = Module_Paques
- 'valable de 1900 à 2099
-
- 'La fonction retourne la date de Pâques dans les deux premier signes et le mois dans les
- 'deux suivant ex: 2803 pour le 28 mars
- 'an est l'année à calculer
- 'Vendredi saint -3
- 'jeudi de l'Ascension (jeudi de la sixième semaine après
- 'Pâques, soit le 39e jours après Pâques)
- 'Pentecôte +50
- 'Fête-Dieu (jeudi qui suit la Trinité, soit le 60e jour après Pâques)
- Option Explicit
- Type ERGpaques
- J_Paques As Integer 'jour
- M_Paques As Integer 'mois
- J_ascension As Integer
- M_ascension As Integer
- J_pentecote As Integer
- M_pentecote As Integer
- 'si trinité et/ou fête-dieu, ajouter ces variables
- 'et les traités dans la fonction
- End Type
- Public DTpaq As ERGpaques
-
- 'Les données sont aussi renvoyées dans la variable type DTpaq.
- Function CalculerPaques(an As Integer) As String
- Dim n As Integer
- Dim a As Integer, b As Single, c As Integer
- Dim e As Single, x As Single, y As Single
- Dim u As Single, d As Integer, P As Integer
- Dim PA$, DA As Long, DAT As Date
- Dim v As Integer
- n = an - 1900: a = n - (Fix((n / 19)) * 19)
- b = Fix(((a * 7) + 1) / 19): u = (11 * a) - b + 4
- c = ((11 * a) - b + 4) - (Int(u / 29) * 29)
- d = Int(n / 4): u = n - c + d + 31
- y = Int(u / 7) * 7
- e = u - y
- P = 25 - c - e
- If P > 0 Then
- PA$ = "0" & P: DTpaq.J_Paques = P: DTpaq.M_Paques = 4
- PA$ = Right$(PA$, 2): PA$ = PA$ & "04"
- Else
- DTpaq.J_Paques = (31 + P): DTpaq.M_Paques = 3
- PA$ = "0" & (31 + P): PA$ = Right$(PA$, 2)
- PA$ = PA$ & "03"
- End If
- CalculerPaques = PA$
- 'calculer ascention
- DA = DateSerial(an, DTpaq.M_Paques, DTpaq.J_Paques) + 39
- DAT = DA: DTpaq.J_ascension = Day(DAT): DTpaq.M_ascension = Month(DAT)
-
- 'calculer la Pentecôte
- DA = DateSerial(an, DTpaq.M_Paques, DTpaq.J_Paques) + 50
- DAT = DA: DTpaq.J_pentecote = Day(DAT): DTpaq.M_pentecote = Month(DAT)
-
- End Function
-
- 'forme de test de la fonction
- 'FormeName=Form_Paques
- ' mettre 3 label - Label1, label2 et label3
- ' mettre un textbox - Text1
- Option Explicit
- Dim Mois(6) As String
-
-
- Private Sub Form_Load()
- Mois(3) = "Mars"
- Mois(4) = "Avril"
- Mois(5) = "Mai"
- Mois(6) = "Juin"
- End Sub
-
- Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
- Dim a$, j As Integer, m As Integer
- Dim b As Integer
-
- If KeyCode = 13 Then ' (ENTER)
- b = Val(Text1.Text)
- If b < 1900 Or b > 2099 Then
- Text1.Text = ""
- Beep
- Exit Sub
- End If
- a$ = CalculerPaques(b)
- Text1.Text = ""
- Label1.Caption = "La date de Pâques en " & b & " est le " & DTpaq.J_Paques & " " & Mois(DTpaq.M_Paques)
- Label2.Caption = "L'Ascension le " & DTpaq.J_ascension & " " & Mois(DTpaq.M_ascension)
- Label3.Caption = "La Pentecôte le " & DTpaq.J_pentecote & " " & Mois(DTpaq.M_pentecote)
- Text1.SetFocus
- End If
- End Sub
'modulename = Module_Paques
'valable de 1900 à 2099
'La fonction retourne la date de Pâques dans les deux premier signes et le mois dans les
'deux suivant ex: 2803 pour le 28 mars
'an est l'année à calculer
'Vendredi saint -3
'jeudi de l'Ascension (jeudi de la sixième semaine après
'Pâques, soit le 39e jours après Pâques)
'Pentecôte +50
'Fête-Dieu (jeudi qui suit la Trinité, soit le 60e jour après Pâques)
Option Explicit
Type ERGpaques
J_Paques As Integer 'jour
M_Paques As Integer 'mois
J_ascension As Integer
M_ascension As Integer
J_pentecote As Integer
M_pentecote As Integer
'si trinité et/ou fête-dieu, ajouter ces variables
'et les traités dans la fonction
End Type
Public DTpaq As ERGpaques
'Les données sont aussi renvoyées dans la variable type DTpaq.
Function CalculerPaques(an As Integer) As String
Dim n As Integer
Dim a As Integer, b As Single, c As Integer
Dim e As Single, x As Single, y As Single
Dim u As Single, d As Integer, P As Integer
Dim PA$, DA As Long, DAT As Date
Dim v As Integer
n = an - 1900: a = n - (Fix((n / 19)) * 19)
b = Fix(((a * 7) + 1) / 19): u = (11 * a) - b + 4
c = ((11 * a) - b + 4) - (Int(u / 29) * 29)
d = Int(n / 4): u = n - c + d + 31
y = Int(u / 7) * 7
e = u - y
P = 25 - c - e
If P > 0 Then
PA$ = "0" & P: DTpaq.J_Paques = P: DTpaq.M_Paques = 4
PA$ = Right$(PA$, 2): PA$ = PA$ & "04"
Else
DTpaq.J_Paques = (31 + P): DTpaq.M_Paques = 3
PA$ = "0" & (31 + P): PA$ = Right$(PA$, 2)
PA$ = PA$ & "03"
End If
CalculerPaques = PA$
'calculer ascention
DA = DateSerial(an, DTpaq.M_Paques, DTpaq.J_Paques) + 39
DAT = DA: DTpaq.J_ascension = Day(DAT): DTpaq.M_ascension = Month(DAT)
'calculer la Pentecôte
DA = DateSerial(an, DTpaq.M_Paques, DTpaq.J_Paques) + 50
DAT = DA: DTpaq.J_pentecote = Day(DAT): DTpaq.M_pentecote = Month(DAT)
End Function
'forme de test de la fonction
'FormeName=Form_Paques
' mettre 3 label - Label1, label2 et label3
' mettre un textbox - Text1
Option Explicit
Dim Mois(6) As String
Private Sub Form_Load()
Mois(3) = "Mars"
Mois(4) = "Avril"
Mois(5) = "Mai"
Mois(6) = "Juin"
End Sub
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Dim a$, j As Integer, m As Integer
Dim b As Integer
If KeyCode = 13 Then ' (ENTER)
b = Val(Text1.Text)
If b < 1900 Or b > 2099 Then
Text1.Text = ""
Beep
Exit Sub
End If
a$ = CalculerPaques(b)
Text1.Text = ""
Label1.Caption = "La date de Pâques en " & b & " est le " & DTpaq.J_Paques & " " & Mois(DTpaq.M_Paques)
Label2.Caption = "L'Ascension le " & DTpaq.J_ascension & " " & Mois(DTpaq.M_ascension)
Label3.Caption = "La Pentecôte le " & DTpaq.J_pentecote & " " & Mois(DTpaq.M_pentecote)
Text1.SetFocus
End If
End Sub
Conclusion
la fonction n'est pas compliquée, il fallait juste trouver les repères.Celà dit, il est possible de renvoyer toute les dates dans la fonction. Un peu de modif..
Historique
- 14 avril 2007 16:14:26 :
- suite a la remarque de Pasquet78 j'ai enlevé le mois de juillet
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
modification de la date d'un fichier .vbx [ par Cyrille ]
Salut, je voudrais savoir comment il est possible de changer la date d'un fichier compilé avec VB (grid.vbx du 25/03/94). Il faut garder le même fichi
base de données sous excel [ par guingoy ]
Bonjour,Voilà, je développe un petit programe sous excel avec VB6.A l'aide d'un MSform (notamment un textbox) j'aimerais alimenter une base de données
Type Date [ par TheDude ]
je suis a la recherche d'un type qui me permette de récupérerune variable capable de stocker des valeurs du genre 10:20, commele type heure abrégé, sa
Conversion de date [ par nico ]
Je souhaite convertir une date au format ss/aaaa en format jj/mm/aaaa.Exemple : la date 35/0000 correspond au 28/08/2000Merci d'avance
Comparer 2 périodes de date [ par amstel ]
J'ai un problème que je n'arrive pas à résoudre :Je dois comparer 2 périodes et renvoyer un message d'erreur si ces périodes se chevauchent. Comment f
Requête date [ par nico ]
En fait je dois comparer des dates insérer à partir de trois menus déroulants (un pour le jour, un mpur le mois, un pour l'année) placés dans un d'un
Format Date [ par Altic ]
Comment modifier le format date, car quand j'utilise isdate, que je met le jj/mm/aaaa et mm/jj/aaaa pour lui c'est pareil.Exemple:31/12/2000 et 12/31/
Comparer 2 périodes de date [ par Amstel ]
Est-ce que quelqu'un peut me venir en aide sur ce problème : je veux comparer 2 périodes de dates pour savoir si celles-ci se chevauchent.Par exemple
Requete SQL [ par funtay ]
bonjour, j'ai un problème de syntaxe dans une requete SQL.En fait ,j'ai une date de début (c'est un maskedbox( txt_datedeb)) et une date de fin (c'est
toujours pb de requete SQL [ par funtay ]
salut à tous!!!J'ai un problème avec la syntaxe d'une requete.J'ai 2 contrôles(maskedbox) qui correspondent à une date de début (datedebut) et une dat
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|