Accueil > > > CALCULER LES FÊTES MOBILES
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
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
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|