Jour correspondant à une date donnée …

Description

Jour correspondant à une date donnée … (Voir document associé ! C'estmeiux lisible !)
Hbouia – 30 déc 2013

Etant donnée une date 'jj/mm/aaaa', on voudrait déterminer le jour correspondant à cette date : un dimanche (0), un lundi (1), …, un samedi (6).

Voici un algorithme simple pouvant être exécuté mentalement, on se basera sur l’exemple de la date de '12/03/1993' :

1) On retient le jour modulo 7 : pour notre exemple, ce sera 12 modula 7 (r1= 5)
2) Codage des mois : bijection de [1,12] vers '0 3 3 6 1 4 6 2 5 0 3 5' :
Chaque mois a un code : C’est le nombre de jours des mois précédents modulo 7.
Le mois de janvier n’a pas de mois précédent : code 0 ;
Le mois de février a 31 jours du mois précédent et modulo 7, cela fait 3 ;
Le mois de mars a 28 + 31 jours cumulés des mois précédents soit 3+0 =3 modulo 7 ;
etc.
On retient le code du mois : pour notre exemple, ce sera le (r2 = 3) (3ème chiffre du code des mois)
r2=code du mois (= 3 pour notre exemple)
3) On calcule l’année de référence par rapport à 1900 : a’ = 1993 – 1900 = 93 et son modulo 7
r3 = 93 = 13x7 + 2 ( r3 = 2 modulo 7).
4) On calcule a' modulo 4 : 93 modulo 4 = 3
r3 = 93 = 13x7 + 2 ( r3 = 2 modulo 7).
5) Est-ce que l’année est bissextile ? (C’est-à-dire multiple de 400 ou alors multiple de 4 et non multiple de 100) :
Eps=1 si bissextile et 0 sinon pour notre exemple : eps = 0.
6) On somme les résultats 5 + 3 + 2 + 2 + 0 = 13 ce qui fait 5 modulo 7 : un vendredi !

B.N : L’objectif de cet utilitaire est de d’utiliser le langage Python sans avoir à avoir connaissance de tous les modules dont il dispose dont le module « date » ;)

Cordialement,

hb

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.