Le problème est le suivant : étant donnée une date quelconque (par exemple le 6 mars 2003) trouver quel est le jour de la semaine correspondant à cette date (lundi, mardi, mercredi, etc.). Il existe plusieurs méthodes pour effectuer ce calcul. Je fournis ici celle qui me semble la plus simple. Un esprit vif (donc jeune) retenant facilement des chiffres, peut effectuer ce calcul mentalement sans avoir recours à un papier et un crayon.
Source de l'illustration |
La méthode ne s'applique qu'au calendrier grégorien c'est-à-dire à des dates postérieures à l'année 1582. Nous prendrons l'exemple du 6 mars 2003.
La méthode, et c'est son intérêt, ne requiert la mémorisation que de deux formules dont la première est très simple :
- c = 1 si le mois est janvier ou février et c= 0 pour les autres mois. Dans notre exemple (mois de mars) c=0.
- JS= [( J +A+ E(A/4) - E(A/100) + E(A/400) + E((31*M)/12 ))] mod 7
- E(...) = partie entière de la division qui figure entre parenthèses. Concrètement on garde la partie entière du résultat et on ne s'occupe pas du reste. Exemple : 10/4 =2,5 donc E(2,5) = 2.
- mod 7 (...) signifie : reste de la division par 7 de la division qui figure entre parenthèses. Exemple : (25/3) mod 7 = 4 car 25 = 3*7 +4.
- JS = code du jour jour de la samaine (but du calcul), soit : 0 pour dimanche, 1 pour lundi, 2 pour mardi, 3 pour mercredi, 4 pour jeudi, 5 pour vendredi, 6 pour samedi.
- J = numéro du jour (6 dans notre exemple du 6 mars 2003)
- A = (numéro de l'année -c). c est le nombre 0 ou 1 calculé comme expliqué plus haut.. Dans notre exemple c=0 et numéro de l'année = 2003, donc A =2003.
- M = numéro du mois - (12*c) -2. Dans notre exemple du 6 mars 2003, c=0 et numéro du mois =3 donc M = 1.
Application au 6 mars 2003
JS = mod 7[( 6 + 2003 +E(2003/4) -E(2003/100)+E(2003/400) + E((31*1)/12))]
JS = mod 7[6 + 2003 + 500 - 20 + 5 +2]
JS = mod 7 (2496)
JS = 4
Le 6 mars 2003 était donc un jeudi.
JS = mod 7[6 + 2003 + 500 - 20 + 5 +2]
JS = mod 7 (2496)
JS = 4
Le 6 mars 2003 était donc un jeudi.
Vérification
Aucun commentaire :
Enregistrer un commentaire
Vous pouvez ajouter des commentaires.