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 lexemple 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 : Cest le nombre de jours des mois précédents modulo 7.
Le mois de janvier na 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 lanné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 lannée est bissextile ? (Cest-à-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 : Lobjectif de cet utilitaire est de dutiliser le langage Python sans avoir à avoir connaissance de tous les modules dont il dispose dont le module « date » ;)
Cordialement,
hb
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.