IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Nombres de lundis dans un mois.


Sujet :

Algorithmes et structures de données

  1. #1
    Membre éprouvé
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Points : 1 122
    Points
    1 122
    Par défaut Nombres de lundis dans un mois.
    Bonjour,

    Lors de mon deuxième cours d'info il y avait un petit exercice proposé qui est de "compter" le nombre de lundis (ou mardis, mercredis ...) en connaissant uniquement le jours de la semaine du premier janvier de l'année considérée. En négligeant les années bisextiles pour le moment.


    Selon le prof étant donné que la réponse est soit 4 soit 5 l'algorithme peut se résumer à un "si quelque_chose alors 5 lundis, sinon 4 lundis fsi".
    Le problème est que j'ai beau regarder le calendrier je ne trouve pas ce "quelque_chose".

    La réponse en elle-même ne m'intérresse pas trop, c'est surtout le raisonnement. De manière analogue j'aimerais trouver comment déterminer le nombre de vendredi 13 (ou jeudi 16 ou autre).

    Merci d'avance.

  2. #2
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 814
    Points : 7 642
    Points
    7 642
    Par défaut
    Salut,

    Connaissant le premier jour de l'année, tu peux déterminer le premier jour de tous les mois (si le 1er janvier est un lundi, pour le 1er février tu décales de 31 jours modulo 7, ça fait 3 jours, ça sera donc un jeudi... et ainsi de suite)

    Connaissant le premier jour du mois, tu sais combien il y aura de lundi dans le mois (en fonction du nombre de jours total dans le mois).
    Exemple pour février, quoique tu fasses, il y en aura 4 (tu as dit pas d'années bisextiles...). Pour janvier, 31 jours, soit 4 semaines et 3 jours, donc 5 lundi si le mois commencent un samedi, un dimanche... ou un lundi!

    Tu fais le raisonnement pour les autres mois, tu regroupes les deux méthodes, et tu as la solution à l'exercice de ton cours d'info.


    Pour le vendredi 13, raisonne à l'envers... vendredi 13, ça nécessite un vendredi 6, donc un dimanche 1er jour du mois. Il ne reste plus qu'à compter les mois commençant par un dimanche!

  3. #3
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Ce calcul est basé sur la division entière (Euclidienne) du nombre de jours par mois par 7. Je te propose la méthode suivante avec exemple sur le calendrier 2005.
    le 1er Lundi de janvier est le 3. donc entre le dernier Lundi de décembre 2004 et celui-ci , il y a 7-3 = R = 4 jours.
    le nombre de jours D en janvier est 31 . La division entière de D+R = 31+4 = 35 par 7 donne pour quotient 5, reste R = 0. Il y a 5 Lundi dans janvier 2005
    Pour février, il y a D=28 jours La division entière de D+R =28+0 par 7 donne pour quotient 4 reste R = 0. Il y a 4 lundi en février
    Pour mars, il y a D=31 jours La division entière de D+R =31+0 par 7 donne pour quotient 4 reste R =3. Il y a 4 lundi en mars
    Pour avril, il y a D=30 jours La division entière de D+R =30+3 par 7 donne pour quotient 4 reste R =5. Il y a 4 lundi en avril
    Pour Mai, il y a D=31 jours La division entière de D+R =31+5 par 7 donne pour quotient 5 reste R =1. Il y a 5 lundi en mai
    Pour Juin, il y a D=30 jours La division entière de D+R =30+1 par 7 donne pour quotient 4 reste R =3. Il y a 4 lundi en juin
    Pour Juillet, il y a D=31 jours La division entière de D+R =31+3 par 7 donne pour quotient 4 reste R =6. Il y a 4 lundi en juillet
    Pour Aout, il y a D=31 jours La division entière de D+R =31+6 par 7 donne pour quotient 5 reste R =2. Il y a 5 lundi en Aout
    Pour Septembre, il y a D=30jours La division entière de D+R =30+2 par 7 donne pour quotient 4 reste R =4. Il y a 4 lundi en Septembre
    Pour octobre, il y a D=31 jours La division entière de D+R =31+4 par 7 donne pour quotient 5 reste R =0. Il y a 5 lundi en octobre
    Pour novembre, il y a D=30 jours La division entière de D+R =30+0 par 7 donne pour quotient 4 reste R =2. Il y a 4 lundi en novembre
    Pour décembre, il y a D=31 jours La division entière de D+R =31+2 par 7 donne pour quotient 4 reste R =5. Il y a 4 lundi en décembre
    Pour janvier 2006 , il y a D=31 jours La division entière de D+R =31+5 par 7 donne pour quotient 5 reste R =1 . Il y a 4 lundi en janvier 2006
    etc ...
    [Edit]
    A noter pour le vendredi 13 : le premier lundi du mois doit alors être le 2 donc le reste R pour le mois précédent doit être 7-2= 5
    Si R= 5, le mois suivant aura un vendredi 13.
    Par exemple pour avril 2005 et décembre 2005 on a R = 5 .
    Donc on aura un vendredi 13 mai 2005 et un vendredi 13 janvier 2006
    [/Edit]

  4. #4
    Membre éprouvé
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Points : 1 122
    Points
    1 122
    Par défaut
    Merci bien, ça me confirme qu'il n'y a pas de méthode directe, pour savoir combien il y a de lundis en juin on est obligé de passer par le calcul du premier de chaque mois précédant le mois de juin.

    Bon, et bien je n'ai plus qu'à essayer d'implémenter ça en ada.

  5. #5
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Merci bien, ça me confirme qu'il n'y a pas de méthode directe,pour savoir combien il y a de lundis en juin
    Ca, ce n'est pas sûr, le pb est un peu différent. Il faut un peu de temps pour y réfléchir, mais ce soir (la semaine a été dure), j'ai un petit coup de fatigue.
    Alors, à demain
    Bonne nuit

  6. #6
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Le reste de Janvier est R = 4.
    Le nombre de jours entre Janvier et juin : 31+28+31+30+31= 151 jours
    151+4 = 155 ; 155/7 Qotient 22 reste R =1
    Il y a eu 22 lundi de janvier à mai (inclus)
    après, c'est comme avant :
    Pour Juin, il y a D=30 jours La division entière de D+R =30+1 par 7 donne pour quotient 4 reste R =3. Il y a 4 lundi en juin

  7. #7
    Membre éprouvé
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Points : 1 122
    Points
    1 122
    Par défaut
    Merci diogene, c'est exactement ce à quoi j'ai pensé après avoir posté mon message.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Dates] Nombre de semaines dans le mois
    Par Prosis dans le forum Langage
    Réponses: 7
    Dernier message: 05/03/2016, 11h10
  2. nombre de semaines dans un mois ?
    Par isachat666 dans le forum Langage
    Réponses: 12
    Dernier message: 06/08/2007, 19h46
  3. Réponses: 4
    Dernier message: 28/05/2007, 19h38
  4. [Dates] Calculer le nombre de jours dans le mois suivant...
    Par Life Hunter dans le forum Langage
    Réponses: 5
    Dernier message: 14/03/2006, 00h01
  5. [CR]nombre de jours dans un mois donné
    Par liberio dans le forum Formules
    Réponses: 2
    Dernier message: 20/04/2004, 16h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo