13 !  MÉTHODES DE CALCUL DU JOUR DE SEMAINE
Calendrier perpétuel ArlotCalendrier perpétuel Sourya
Algorithme de KraitchikMéthode de Zeller
Méthode de GaussAlgorithme du Madras College
Doomsdays de John ConwayMéthode Moret
Algorithme de Mike KeithAlgorithme de Claus Tondering
Méthode de Lewis CarrollMéthode de Mark Dettinger
Calendrier grégorien perpétuel
Google  

Algorithme de Christian Zeller (1822-1899)

Notation
Notation mathématique, sous forme d'opérateurs div et mod :
    n div p = nombre de fois que p divise n (diviseur entier)
    n mod p = le reste de la division de n par p
Exemples :
    13 div 5 = 2, 13 mod 5 = 3     car 13 = 5x2 + 3
    20 div 4 = 5, 20 mod 5 = 0     car 20 = 5x4 + 0

ssaa    l'année, ie. 2004.
ss    le siècle ou les deux premiers de l'année ssaa; ss = 20 pour l'an 2004.
aa    l'année spécifique ou les deux derniers chiffres de l'année ssaa; aa = 04 pour l'an 2004.
m    le rang du mois de l'année, sauf dans le cas de janvier et février qui valent respectivement. 13 et 14 de l'année précédente.
j    le rang du jour de la semaine, avec par convention 0=Sam., 1=Dim., 2=Lun., ..., 6=Ven.
[ ]    désigne la partie entière d'une division; [ ] équivalent à l'opérateur div.

Rang de chacun des mois de l'année: m
Mois MJanFévMarsAvrMaiJuinJuilAoûtSepOctNovDéc
Rang N123456789101112
m13*14*3456789101112
* NOTE IMPORTANTE: pour ces 2 mois, utiliser l'année précédente ssaa -1,
donc aa* = aa - 1 et non aa

Rang du jour de la semaine : j
JourDimancheLundiMardiMercrediJeudiVendrediSamedi
j1234560

Algorithme

A) Calendrier grégorien
(dates depuis 1583)

Le rang j du jour de la semaine où tombe le quantième q du mois m de l'année sa est égal au reste de la division par 7 de z :
z = { quantième + [(26/10)(mois +1)] + année + [année/4] + [siècle/4] - 2siècle } mod 7
z = { q + [(26/10)(m +1)] + aa + [aa/4] + [ss/4] - 2ss } mod 7
z = { q + [2,6(m +1)] + aa + [aa/4] + [ss/4] - 2ss } mod 7

Les divers paramètres cernés par cette formule de Zeller ne changent pas au même rythme: q varie chaque jour, m change chaque mois, aa varie chaque année, aa/4 chaque année bissextile, ss chaque siècle, ss/4 à tous les 4 siècles. Néanmoins, la plus grande irrégularité est liée à la longueur différente des mois (28, 29, 30 et 31 jours), ce qui engendre des décalages de 1, 2 ou 3 unités. C'est pour corriger ces variations mensuelles que Zeller introduit l'expression (26/10)(m +1) qui elle-même augmente de 2,6 par mois. Le facteur 26/10 équivaut à postuler que tous les mois ont un nombre stable et non variable de jours, soit 30,6 jours par mois.

NOTE: Si z est négatif, on fait (7n + z) où l'entier n est choisi de façon à ce que la valeur de l'expression varie de 0 à 6; 7n reflètant le cycle répétitif des 7 jours de semaine. Par exemple, si z = -6, on fait 7 - 6 = 1, soit n=1; si z = -23, on fait 28 - 23 = 5, soit n=4.

B) Calendrier julien
(dates avant 1583)

z = { q + [(26/10)(m +1)] + aa + [aa/4] + 5 - 2 } mod 7
z = { q + [2,6(m +1)] + aa + [aa/4] + 5 - ss } mod 7

Exemples

Quels jours de la semaine tombaient les 12 octobre 1492, 18 janvier 1953 et 11 avril 2004?

12 octobre 1492
q = 12   m = 10   aa = 92   ss = 14
z = { 12 + [2,6(10 +1)] + 92 + [92/4] + 5 - 14 } mod 7
z = { 12 + 28 + 92 + 23 + 5 - 14 } mod 7
z = 146 mod 7 = 6   car 146 = 7 x 20 + 6
donc le 12 octobre 1492 = un Vendredi, date de la découverte de l'Amérique par Colombus (exemple de calcul présenté par Zeller dans son article de 1886).

18 janvier 1953
q = 18   m = 13   aa* = 52   ss = 19
z = { 18 + [2,6(13 +1)] + 52 + [52/4] + [19/4] - 2x19 } mod 7
z = { 18 + 36 + 52 + 13 + 4 - 38 } mod 7
z = 85 mod 7 = 1   car 85 = 7 x 12 + 1
donc le 18 janvier 1953 = un Dimanche

11 avril 2004
q = 11   m = 4   aa = 04   ss = 20
z = { 1 + [2,6(4 +1)] + 4 + [4/4] + [20/4] - 2x20 } mod 7
z = { 11 + 13 + 4 + 1 + 5 - 40 } mod 7
z = {-6} mod 7
z = -6, on fait 7 - 6 = 1
donc le 11 avril 2004 = un Dimanche; jour de Pâques.

Au besoin, le lecteur pourrait vérifier ses résultats de calcul du jour de la semaine au moyen de notre Calendrier pratique, du Calendrier permanent ou du Calendrier perpétuel à 12 mois.

Autre version de l'algorithme

z = { q + [2,6m - 0,2)] + aa + [aa/4] + [ss/4] - 2ss } mod 7

Dans cette version, les codes des mois commencent dans l'ordre avec mars = 1, avril = 2, ... décembre = 10; les mois de janvier et février sont considérés ici respectivement comme 11e et 12e mois de l'année précédente (voir Vardi, I. 1991, pp. 237-238, Uspensky et Heaslet 1939, pp. 206-211 et Eric W. Weisstein 1999).

Codes M des mois de l'année
MoisJanFévMarsAvrMaiJuinJuilAoûtSepOctNovDéc
M11*12*12345678910
* NOTE IMPORTANTE: pour ces 2 mois, utiliser l'année précédente ssaa -1,
donc aa* = aa - 1 et non aa
Avec le rang j du jour de la semaine respectant toujours la convention    0=Sam., 1=Dim., 2=Lun., ..., 6=Ven.

Références :
Google  
     Tous droits réservés
Mythe du vendredi 13

MENU

ACCUEIL
6 CHAPITRES
CHAPITRE 1
CHAPITRE 2
CHAPITRE 3
CHAPITRE 4
CHAPITRE 5
CHAPITRE 6
7 ANNEXES
ANNEXE 1
ANNEXE 2
ANNEXE 3
ANNEXE 4
ANNEXE 5
ANNEXE 6
ANNEXE 7