Help programme C qui calcule nombre de jour entre 2 dates
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

Help programme C qui calcule nombre de jour entre 2 dates



  1. #1
    invite33440d00

    Exclamation Help programme C qui calcule nombre de jour entre 2 dates


    ------

    Bonjour a tous,
    Je dois écrire le programme C qui lit une date sous la forme JJ/MM/AAAA suposée valide et qui calcule le nombre de jour ecoulé depuis le 1er janviers de l'année en questions ..
    Code:
    #include <stdio.h>
    main()
    {
    	
    	int J,M,A,N,J1,M1,A1;
    	J1=01;
    	M1=01;
    	printf ("Entrer le jour : \n");
    	scanf ("%d",&J);
    	printf ("Entrer le mois : \n");
    	scanf ("%d",&M);
    	printf ("Entrer l'annee : \n");
    	scanf ("%d",&A);
    	printf ("La date se lit : %d / %d / %d \n\n",J,M,A);
    	
    	if ((A%400)==0) 
    	
    	printf ("L'annee est bissextile \n");
    	// N c'est le nombre de jour entre les 2 dates 
    	
    	N=(J-J1)+(M-M1);
    	printf ("Le nombre de jour passé est : %d",N);
    	
    }
    Voila ce que j'ai fais pour l'instant mais je sais plus quoi faire, svp aider moi !!
    Mercii

    -----
    Dernière modification par JPL ; 01/12/2016 à 14h29. Motif: Ajout de la balise Code (#)

  2. #2
    cherbe

    Re : Help programme C qui calcule nombre de jour entre 2 dates

    Bonjour
    Je ne connais pas le C mais la plupart des langages sont capables de calculer le nombre de jours entre deux dates donc ton code est à priori inutile.
    Si ton but est un exercice de programmation, il faut t'y prendre autrement.
    Il te faut faire un tableau (array) avec 13 mois :
    jan;31
    fev0;28
    fev1;29
    mar;31
    .
    .
    .
    Comme la date de départ semble être le premier janvier, pour calculer le nombre de jours, il faut additionner le jour du dernier mois + la somme des mois précédents calculée à partir des valeur du tableau -1.
    Pour avoir de l'argent devant soi, il faut en mettre de côté ! (proverbe lorrain)

  3. #3
    Jack
    Modérateur

    Re : Help programme C qui calcule nombre de jour entre 2 dates

    Code:
        if ((A%400)==0) 
            printf ("L'annee est bissextile \n");
    2016 ne serait donc pas bissextile?

  4. #4
    pm42

    Re : Help programme C qui calcule nombre de jour entre 2 dates

    Citation Envoyé par cherbe Voir le message
    Il te faut faire un tableau (array) avec 13 mois :
    jan;31
    fev0;28
    fev1;29
    mar;31
    Oui mais c'est compliqué et risqué algorithmiquement. J'utiliserais plutôt une formule directe comme celle de Gauss:
    https://en.wikipedia.org/wiki/Determ....27s_algorithm


    Citation Envoyé par Jack Voir le message
    Code:
        if ((A%400)==0) 
            printf ("L'annee est bissextile \n");
    2016 ne serait donc pas bissextile?
    En effet. La ligne suivant fait aussi l'addition de la différence des jours et de la différence des mois, bref de choux et de carottes.

  5. A voir en vidéo sur Futura
  6. #5
    cherbe

    Re : Help programme C qui calcule nombre de jour entre 2 dates

    Citation Envoyé par pm42 Voir le message
    Oui mais c'est compliqué et risqué algorithmiquement. J'utiliserais plutôt une formule directe comme celle de Gauss:
    https://en.wikipedia.org/wiki/Determ....27s_algorithm
    Tu peux me dire ce qui est risqué car je ne vois pas ?
    D'autre part, je ne crois pas que ce soit plus compliqué que le recours à cet algo. Tu voulais peut-être dire que c'est lourd à programmer et long à exécuter ?
    Pour avoir de l'argent devant soi, il faut en mettre de côté ! (proverbe lorrain)

  7. #6
    CM63

    Re : Help programme C qui calcule nombre de jour entre 2 dates

    Bonjour,

    Il est évident que c'est un exercice scolaire ou universitaire, donc c'est pas la peine de lui dire qu'il y a des routines toutes faites pour ça, mais plutôt quel est son problème dans ce qu'il a essayé?

  8. #7
    pm42

    Re : Help programme C qui calcule nombre de jour entre 2 dates

    Citation Envoyé par cherbe Voir le message
    Tu peux me dire ce qui est risqué car je ne vois pas ?
    Il est plus compliqué de programmer un algorithme impliquant des tableaux et des nombres de jours par mois que d'utiliser une formule efficace et plus que centenaire qui va s'écrire sur 1 ligne en C.
    Cette complexité augmente le risque de bug (d'où le terme "plus risqué").

  9. #8
    ansset
    Animateur Mathématiques

    Re : Help programme C qui calcule nombre de jour entre 2 dates

    certes, mais cela semble un exercice de cours (*) , donc qui suppose d'imaginer un algorithme propre ( même simple ) et une programmation qui lui correspond en C.
    en ce sens ( si c'est le cas ) , l'approche proposée par cherbe est assez naturelle.
    Cdt

    (*) à confirmer.
    Dernière modification par ansset ; 02/12/2016 à 11h38.
    y'a quelque chose qui cloche là dedans, j'y retourne immédiatement !

  10. #9
    pm42

    Re : Help programme C qui calcule nombre de jour entre 2 dates

    Citation Envoyé par ansset Voir le message
    certes, mais cela semble un exercice de cours (*) , donc qui suppose d'imaginer un algorithme propre ( même simple ) et une programmation qui lui correspond en C.
    en ce sens ( si c'est le cas ) , l'approche proposée par cherbe est assez naturelle.
    Cdt

    (*) à confirmer.
    C'est un point de vue. D'un autre coté, inventer son algorithme à soi quand on peut trouver celui de référence en 2 clics n'est pas ce que j'enseigne quand il m'arrive de donner des cours. En général, les algorithmes inventés par les programmeurs débutant n'ont pas que des avantages et j'encourage de faire preuve de curiosité et de savoir ce qui existe plutôt que de réinventer la roue.
    Ce qui est bien sur différent de se contenter d'utiliser une API sans savoir comment elle est codée.

  11. #10
    Jack
    Modérateur

    Re : Help programme C qui calcule nombre de jour entre 2 dates

    Citation Envoyé par pm42 Voir le message
    C'est un point de vue. D'un autre coté, inventer son algorithme à soi quand on peut trouver celui de référence en 2 clics n'est pas ce que j'enseigne quand il m'arrive de donner des cours. En général, les algorithmes inventés par les programmeurs débutant n'ont pas que des avantages et j'encourage de faire preuve de curiosité et de savoir ce qui existe plutôt que de réinventer la roue.
    Ce qui est bien sur différent de se contenter d'utiliser une API sans savoir comment elle est codée.
    Je pense que dans cet exercice, la finalité importe peu et ce calcul n'est qu'un prétexte pour mettre en oeuvre des principes algorithmiques et de structures de données simples.

    Il ne faut donc pas chercher à optimiser la méthode menant au résultat

  12. #11
    pm42

    Re : Help programme C qui calcule nombre de jour entre 2 dates

    Citation Envoyé par Jack Voir le message
    Je pense que dans cet exercice, la finalité importe peu et ce calcul n'est qu'un prétexte pour mettre en oeuvre des principes algorithmiques et de structures de données simples.
    Il ne faut donc pas chercher à optimiser la méthode menant au résultat
    Oui, comme je le disais, c'est une question de point de vue et donc de prof. J'en explique juste un qui a de plus l'avantage sur un forum de faire connaitre une autre solution mais je ne prétends pas que ce soit la meilleure approche.
    Le primo-posteur pourra faire son choix s'il revient.

  13. #12
    Bluedeep

    Re : Help programme C qui calcule nombre de jour entre 2 dates

    Bonjour

    Le problème est quand même très simple : c'est comme indiqué, pas un calcul entre deux dates, mais juste le nombre de jours depuis le début de l'année.

    Donc, il suffit de charger un tableau à deux dimensions avec le nombre de jour de chaque mois et le cumul en fin de chaque mois; rentrer dans ce tableau avec le mois précédent celui de la date saisie (ou 0 si janvier) et ajouter le quantième de la date et on a le résultat.

    Pas fait de C depuis plus de 20 ans, mais on doit pouvoir faire quelque chose comme ça : (tapé à la volée sans contrôle syntaxique, donc peu probable que ça compile du premier coup).

    #### supprimé à la demande de Bluedeep
    Dernière modification par JPL ; 02/12/2016 à 12h38.

  14. #13
    cherbe

    Re : Help programme C qui calcule nombre de jour entre 2 dates

    Citation Envoyé par pm42 Voir le message
    Il est plus compliqué de programmer un algorithme impliquant des tableaux et des nombres de jours par mois que d'utiliser une formule efficace et plus que centenaire qui va s'écrire sur 1 ligne en C.
    Cette complexité augmente le risque de bug (d'où le terme "plus risqué").
    Si tu relis mon 1er message, je suggère 2 pistes :
    soit on veut une solution rapide et on utilise les fonctions de calcul temporel ;
    soit on veut apprendre à programmer et dans ce cas, il est préférable de décomposer le travail pour bien le comprendre et "se faire la main".
    L'objectif étant d'apprendre, générer des bugs est didactique et ne peut qu'inciter le programmeur à la plus grande rigueur de raisonnement et d'écriture.
    Pour avoir de l'argent devant soi, il faut en mettre de côté ! (proverbe lorrain)

  15. #14
    cherbe

    Re : Help programme C qui calcule nombre de jour entre 2 dates

    Citation Envoyé par Bluedeep Voir le message
    (tapé à la volée sans contrôle syntaxique, donc peu probable que ça compile du premier coup).
    Heu... Je me trompe ou c'est précisément ce que la charte déconseille vivement de faire : donner un code tout fait alors que l'auteur de la question n'a rien proposé ?
    (La réponde du berger à la bergère à propos d'une très ancienne contribution où tu m'avait mis à mal. Sans rancune j'espère ? )
    Pour avoir de l'argent devant soi, il faut en mettre de côté ! (proverbe lorrain)

  16. #15
    Bluedeep

    Re : Help programme C qui calcule nombre de jour entre 2 dates

    Citation Envoyé par cherbe Voir le message
    Heu... Je me trompe ou c'est précisément ce que la charte déconseille vivement de faire : donner un code tout fait alors que l'auteur de la question n'a rien proposé ?
    (La réponde du berger à la bergère à propos d'une très ancienne contribution où tu m'avait mis à mal. Sans rancune j'espère ? )
    Tu as absolument raison; je vais de ce pas demander aux modos de virer le code.

    EDIT : je viens donc de signaler mon propre post.
    Dernière modification par Bluedeep ; 02/12/2016 à 12h33.

Discussions similaires

  1. 'c' Ecrire un programme qui traite tout les nombre < à un nombre choisi, s'ils sont premiers ou non.
    Par invitef1478674 dans le forum Programmation et langages, Algorithmique
    Réponses: 18
    Dernier message: 10/12/2013, 06h26
  2. Convertir dates HH:MM:SS en un nombre , Matlab
    Par invitef89c3550 dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 13/01/2013, 14h08
  3. Calcule du nombre d'oxydations
    Par invite7e54d0bd dans le forum Chimie
    Réponses: 3
    Dernier message: 03/05/2012, 08h33