Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Calculer date jour de pâques dans Requete

8 réponses
Avatar
ChrisCol
Bonjour,

comment calculer le jour de Pâques dans une requête ?
la formule OK sous Excel ne colle pas sous Access.
il se peut que je l'ai mal traduite.

Excel:
=FRANC((JOUR(MINUTE(ANN/38)/2+55)&"/4/"&ANN)/7;)*7-6

Access:
Pq1: CDate(CMonnaie((CDate(Jour(Minute([Ann]/38)/2+55) & "/4/" &
[Ann]))/7)*7-6)

autre solution ?

Merci d'avance

PS. quel est l'équivalent la fonction Modolu dans une requête ?

8 réponses

Avatar
Pascal Engelmajer
Salut,

Sub test()
paques (2001)
End Sub
Function paques(annee As Integer)
'le dimanche qui suit le 14e jour de la lune qui a lieu le 21 mars ou juste
après.
'concile de Nicée en 325
'd'après J. Meeus
'Domaine de validité : de 1582 (début du calendrier grégorien) jusqu'en 4200
Dim nbOr As Integer, siecle As Integer, unite As Integer, mois As
Integer, jour As Integer
Dim siecleBissextile As Integer 'sont bissextiles les années séculaires
non divisibles par 400
Dim rangSiecle As Integer
Dim proemptose As Integer 'ajout d'un jour à épacte 7 fois de suite
tous les 300 ans
'puis une fois au bout de 400 ans (8 fois par
2500 ans)
Dim metemptose As Integer 'retrait d'un jour à l'épacte chaque année
séculaire non bissextile (divisible par 400)
Dim epacte As Integer, anneeBissextile As Integer, rangAnnee As Integer
Dim lettreDominicale As Integer, facteurCorr As Integer
Application.Volatile 'pour usage dans une feuille de calcul
nbOr = annee Mod 19 ' Cycle de Meton (astronome grec Véme
siècle avant JC inventeur de l'héliotrope)
siecle = annee 100
unite = annee Mod 100 'dizaines et unités de l'année
siecleBissextile = siecle 4 'nombre de siècles bissextiles avant
correction
rangSiecle = siecle Mod 4 'rang dans le cycle de bissextilité des
siècles
proemptose = (siecle + 8) 25 '8 jours pour corriger l'approximation
de Meton
'1 jour tous les 25 siècles
metemptose = (siecle - proemptose + 1) 3 ' un jour par année séculaire
non bissextile
' cad siècle divisible par 400
epacte = (19 * nbOr + siecle - siecleBissextile - metemptose + 15) Mod
30
'l'épacte est l'age de la lune au premier
janvier d'une année moins 1 jour
'L'age de la lune c'est le nombre de jours
écoulés depuis la nouvelle lune
anneeBissextile = unite 4 'nombre d'années bissextiles avant
correction
rangAnnee = unite Mod 4 'rang dans le cycle de bissextilité des
années
lettreDominicale = (32 + 2 * rangSiecle + 2 * anneeBissextile - epacte -
rangAnnee) Mod 7
'c'est le rang dans l'alphabet de la lettre
A,B,...,G
'attribuée aux jours par le 1er dimanche de
l'année
'A le 1 janvier, B le 2, les années
bissextiles le 24 est répété donc décalage
'et une 2éme lettre dominicale (la suivante)
est attribuée aux jours après le 24 ou le 28 février
'Dans le calendrier julien le jour
supplémentaire des année bissextiles
'était ajouté le 24 fevrier
'comme paques se trouve après le 20 mars,
les années bissextiles
' on prend la deuxième lettre...

facteurCorr = (nbOr + 11 * epacte + 22 * lettreDominicale) 451
mois = (epacte + lettreDominicale - 7 * facteurCorr + 114) 31
jour = (epacte + lettreDominicale - 7 * facteurCorr + 114) Mod 31
paques = jour + 1 & "/" & mois & "/" & annee
End Function



--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
http://www.ilyapa.net/baseExcel
"ChrisCol" a écrit dans le message de news:
40d67c03$0$288$
Bonjour,

comment calculer le jour de Pâques dans une requête ?
la formule OK sous Excel ne colle pas sous Access.
il se peut que je l'ai mal traduite.

Excel:
=FRANC((JOUR(MINUTE(ANN/38)/2+55)&"/4/"&ANN)/7;)*7-6

Access:
Pq1: CDate(CMonnaie((CDate(Jour(Minute([Ann]/38)/2+55) & "/4/" &
[Ann]))/7)*7-6)

autre solution ?

Merci d'avance

PS. quel est l'équivalent la fonction Modolu dans une requête ?





Avatar
Pascal Engelmajer
Salut,
PS
= =FRANC((JOUR(MINUTE(ANN/38)/2+55)&"/4/"&ANN)/7;)*7-6
cad
=DOLLAR((DAY(MINUTE(A19/38)/2+55)&"/4/"&A19)/7,)*7-6
sont des fonction de la feuille de calcul et n'ont pas d"équivalent VBA à ma
connaissance
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
http://www.ilyapa.net/baseExcel
"ChrisCol" a écrit dans le message de news:
40d67c03$0$288$
Bonjour,

comment calculer le jour de Pâques dans une requête ?
la formule OK sous Excel ne colle pas sous Access.
il se peut que je l'ai mal traduite.

Excel:
=FRANC((JOUR(MINUTE(ANN/38)/2+55)&"/4/"&ANN)/7;)*7-6

Access:
Pq1: CDate(CMonnaie((CDate(Jour(Minute([Ann]/38)/2+55) & "/4/" &
[Ann]))/7)*7-6)

autre solution ?

Merci d'avance

PS. quel est l'équivalent la fonction Modolu dans une requête ?





Avatar
Raymond [mvp]
Bonjour.

Tu trouveras la fonction pour calculer les fêtes carillonnées sur la page:
http://access.vba.free.fr/jours_travailles.htm#Fêtes_carillonnées_catholiques.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"ChrisCol" a écrit dans le message de
news:40d67c03$0$288$
Bonjour,

comment calculer le jour de Pâques dans une requête ?
la formule OK sous Excel ne colle pas sous Access.
il se peut que je l'ai mal traduite.

Excel:
=FRANC((JOUR(MINUTE(ANN/38)/2+55)&"/4/"&ANN)/7;)*7-6

Access:
Pq1: CDate(CMonnaie((CDate(Jour(Minute([Ann]/38)/2+55) & "/4/" &
[Ann]))/7)*7-6)

autre solution ?

Merci d'avance

PS. quel est l'équivalent la fonction Modolu dans une requête ?





Avatar
Pascal Engelmajer
Salut,
c'est celle que j'ai donnée plus haut en l'expliquant...
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
http://www.ilyapa.net/baseExcel
"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

Tu trouveras la fonction pour calculer les fêtes carillonnées sur la page:

http://access.vba.free.fr/jours_travailles.htm#Fêtes_carillonnées_catholique

s.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"ChrisCol" a écrit dans le message de
news:40d67c03$0$288$
Bonjour,

comment calculer le jour de Pâques dans une requête ?
la formule OK sous Excel ne colle pas sous Access.
il se peut que je l'ai mal traduite.

Excel:
=FRANC((JOUR(MINUTE(ANN/38)/2+55)&"/4/"&ANN)/7;)*7-6

Access:
Pq1: CDate(CMonnaie((CDate(Jour(Minute([Ann]/38)/2+55) & "/4/" &
[Ann]))/7)*7-6)

autre solution ?

Merci d'avance

PS. quel est l'équivalent la fonction Modolu dans une requête ?









Avatar
Techniciel
Bonjour,

Voilà une autre formule :
=SérieDate(Annee;3;22+MOD(19*MOD(Annee;19)+24;30)+MOD(2*MOD(Annee;4)+4*MOD(A
nnee;7)+6*MOD(19*MOD(Annee;19)+24;30)+5;7))+1

Annee est à remplacer par une champ ou une variable qui contient l'année en
question

Le +1 permet de calculer le lundi de paques. Retirer +1 pour le jour de
paques

Espérant vous avoir aidé.

Cordialement

"ChrisCol" a écrit dans le message de
news:40d67c03$0$288$
Bonjour,

comment calculer le jour de Pâques dans une requête ?
la formule OK sous Excel ne colle pas sous Access.
il se peut que je l'ai mal traduite.

Excel:
=FRANC((JOUR(MINUTE(ANN/38)/2+55)&"/4/"&ANN)/7;)*7-6

Access:
Pq1: CDate(CMonnaie((CDate(Jour(Minute([Ann]/38)/2+55) & "/4/" &
[Ann]))/7)*7-6)

autre solution ?

Merci d'avance

PS. quel est l'équivalent la fonction Modolu dans une requête ?





Avatar
Flow
La fonction donnée plus haut est basée sur l'aloritme de butcher.
il existe un algo plus simple pour obtenir le meme resultat, celui d'Oudin
voir par exp ici :
http://www.smart.net/~mmontes/oudin.html
vous verrez qu'il y en a aussi un 3eme celui de carter.

Voila c'etait juste pour info, si vous avez envie de reduire un peu le nbre
de lignes dans vos modules :-)
Avatar
ChrisCol
merci à tous,

En fait je cherche plutôt une formule à inclure dans un champs calculé d'une
simple requête.

le problème est de savoir si le dimanche de paques est inclus dans une
période bornée entre 2 dates toujours différentes.

A +
Avatar
ChrisCol
Merci à tous et particulièrement à Pascal,
C'est exactement ce que je cherchais