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

 C++ Discussion :

Numéro du jour dans l'année


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 1
    Points : 0
    Points
    0
    Par défaut Numéro du jour dans l'année
    Je vous explique, je dois rendre un devoir en C++ où je dois donner une date (Ex: 08/11/2015) et avec cette date il doit me dire que c'est (Ex: le 320 èmes jours de l'année) sachant qu'il faut prendre en compte les années bissextile et les 30 et 31 des mois.

    Merci d'avance

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Et ?
    Montres ce que tu as fait et dis-nous ce qui te coince.

  3. #3
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    Ben, la logique est simple :
    1. déterminer si tu as affaire à un année bissextile ou non
    2. déterminer le nombre de jours que tu as en février en fonction de la "bissextualité" de l'année introduite
    3. déterminer le nombre de jours de chaque mois entiers rencontré entre le premier janvier et la date indiquée par l'utilisateur
    4. additionner le nombre de jour de tous les mois entiers trouvés en (3) et y ajouter le nombre de jours séparant le premier du mois indiqué par la date et la date elle-même

    Pour le (1) : une année est bissextile si
    1. le nombre de l'année est divisible par 4 et
    2. qu'il n'est pas divisible par 10 à moins
    3. qu'il ne soit divisible par 400

    Pour le (2): le mois de février contient 28 jours si l'année n'est pas bissextile et 29 si elle l'est
    pour le (3) :
    si le mois considéré est le mois de février, tu peux renvoyer 28 si l'année n'est pas bissextile et 29 si elle l'est
    pour tous les autres mois, tu peux:
    retirer 6 du numéro du mois considéré si il est supérieur ou égal à 7
    renvoyer 31 si le numéro résultant (celui du mois concerné OU celui du mois concerné - 6 ) est un numéro impaire et 30 si le résultat est un nombre pair.
    Pour le 4 : il suffit d'additionner systématiquement les valeurs obtenues

    Maintenant, si ton problème n'a rien à voir avec l'algorithmie, il faut savoir que nous ne ferons en aucun cas tes devoirs pour toi. Nous pouvons évidemment t'aider à résoudre un problème particulier, mais il ne serait pas à notre avantage que de te permettre d'avoir une note que tu ne mériterais pas, vu que ton devoir aurait été fait par un autre.

    Les conditions indispensables pour que nous t'aidions sont donc :
    1. que tu nous montre que tu as fait le maximum de ce que tu pouvais
    2. que tu vienne nous poser une question sur un point bien précis (algorithmie, syntaxe refusée ou erreur dans le résultat, par exemple), en nous donnant, quoi qu'il arrive, le code que tu as déjà écrit.

    Ce n'est qu'à ces seules conditions que nous accepterons, si pas de corriger ton code pour qu'il fonctionne correctement, de te mettre sur la voie de ce qui cloche dans ton code pour que tu puisse trouver toi-même la solution (ce qui sera le meilleur service que nous pourrons te rendre )
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    Membre chevronné

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Points : 1 878
    Points
    1 878
    Billets dans le blog
    21
    Par défaut
    Allez, pour te donner quelques indices et, j'espère, éveiller ta curiosité, le programme en question avec le calcul fait pendant la compilation:

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    #include <iostream>
     
    template <int Year>
    struct is_bissextile {
      static const int value =     (Year % 4 == 0 && Year % 100 != 0)
                                 || Year % 400 == 0;
    };
     
    template <int Month, int Year, int Result>
    struct DAYS_TO_MONTH {
      static const int days_in_month = ( Month == 4 || Month == 6 || Month == 9 || Month == 11 ) ? 30 : 31;
      static const int value = DAYS_TO_MONTH<Month-1, Year, Result + days_in_month>::value;
    };
     
    template <int Year, int Result>
    struct DAYS_TO_MONTH<2, Year, Result> {
      static const int value = Result + 59 + is_bissextile<Year>::value;
    };
     
    template <int Year, int Result>
    struct DAYS_TO_MONTH<0, Year, Result> {
      static const int value = Result;
    };
     
    template <int Day, int Month, int Year>
    struct DAY_OF_THE_YEAR {
      static const int value = DAYS_TO_MONTH<Month-1, Year, Day>::value;
    };
     
    int main() {
      std::cout << DAY_OF_THE_YEAR<31,12,1982>::value; // 365
    }

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    GG stendhal666.

    Mais, il manquerait pas le calcul avec la transition entre le calendrier Julien et le calendrier Grégorien, non ?

  6. #6
    Membre du Club
    Homme Profil pro
    Artiste
    Inscrit en
    Octobre 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Artiste
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2015
    Messages : 30
    Points : 44
    Points
    44
    Par défaut
    Rire

    Ah ! quelle belle époque ce moyen-âge ! pas d'informatique... la belle vie quoi (parole de débutant sénior qui en bave).

Discussions similaires

  1. Nombre de jours dans l'année
    Par Benjamin.Dohogne dans le forum Excel
    Réponses: 22
    Dernier message: 30/04/2020, 14h27
  2. Nombre de jour dans l'année
    Par aureliegro dans le forum Cognos
    Réponses: 1
    Dernier message: 03/05/2008, 01h01
  3. Récupérer le numéro du jour dans la semaine
    Par alliance dans le forum MFC
    Réponses: 1
    Dernier message: 19/10/2007, 10h54
  4. [DOS] récupérer le numéro du jour dans un batch
    Par maxo dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 23/03/2007, 16h25
  5. Réponses: 6
    Dernier message: 25/09/2006, 14h51

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