Calcul de la date du lendemain

Page 2 sur 2 Précédente  1, 2

Voir le sujet précédent Voir le sujet suivant Aller en bas

Re: Calcul de la date du lendemain

Message par manianis le Sam 24 Nov - 23:05

Pour être précis Nabil vous parlez là de variables flottantes ?
Exemple :
5.0 est considérée comme valeur entière

manianis
Admin
Admin

Sexe:Masculin
Messages : 976
Inscrit le : 10 Oct 2007
Localisation : Tunisie

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

Revenir en haut Aller en bas

Re: Calcul de la date du lendemain

Message par nabiL le Dim 25 Nov - 14:01

Une version SANS FONCTIONS du programme Calcul de la date du Lendemain

(Compilé et testé sous Visual Studio 6.0)

Code:
#include

void main()
{
    /********************* les variables *****************/
    int an1, mois1, jour1;
    int estBis;
    int maxJours;
    int an2, mois2, jour2;

    /********************* saisie de la date ***************/
    printf("SAISIE D'UNE DATE: \n\n");
    printf("\tANNEE = "); scanf("%i",&an1);
    printf("\tMOIS  = "); scanf("%i",&mois1);
    printf("\tJOUR  = "); scanf("%i",&jour1);

    /********************* contrôle de la date *********** */
    printf("\n");
    /* test sur Année */
    if (an1<=0)
    {
        printf("\t>> Erreur: Annee negative.\n");
        return;
    }
    /* test sur Mois */
    if (mois1<1 || mois1>12)
    {
        printf("\t>> Erreur: Mois invalide.\n");
        return;
    }
    /* test sur Jours du Mois */
    /* mois = 31 jours */
    if (mois1==1  || mois1==3 || mois1==5 || mois1==7 ||
mois1==8 || mois1==10 || mois1==12)
    {
        maxJours = 31;
        if (jour1<1 || jour1>31)
        {
            printf("\t>> Erreur: Jour invalide (mois de 31 jours).\n");
            return;
        };
    }
    /* mois = 28/29 jours */
    else
        if (mois1==2)
        {
            estBis = (an1%4==0 && an1%100!=0) || (an1%400==0);
            maxJours = 28+estBis;
            if (jour1<1 || jour1>maxJours)
            {
                printf("\t>> Erreur: Jour invalide (mois de %i jours).\n",maxJours);
                return;
            };
        }
        /* mois = 30 jours */
        else
        {
            maxJours = 30;
            if (jour1<1 || jour1>30)
            {
                printf("\t>> Erreur: Jour invalide (mois de 30 jours).\n");
                return;
            };
        }

    /********************* Calcul date Lendemain *********/
    an2 = an1;
    mois2 = mois1;
    jour2 = jour1;
   
    if (jour1 < maxJours)
        jour2 = 1 + jour1;
    else
    {
        jour2 = 1;
        mois2 = 1 + mois1;
        if (mois2 > 12)
        {
            mois2 = 1;
            an2 = 1 + an1;
        }
    }
   
    /********************* Affichage de la date Lendemain *****/
   
    printf("DATE DU LENDEMAIN \n\n");
    printf("\tANNEE = %i\n", an2);
    printf("\tMOIS  = %i\n", mois2);
    printf("\tJOUR  = %i\n", jour2);

}
Nabil - tunis
خير الناس أنفعهم للناس

nabiL
Admin
Admin

Sexe:Masculin
Messages : 1906
Inscrit le : 19 Mar 2007
Localisation : Tunisie

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

Revenir en haut Aller en bas

Re: Calcul de la date du lendemain

Message par informix le Dim 25 Nov - 20:56

nabiL: il est un peu long, mais je crois que c'est du à l'absence des fonctions!

Rectif: #include <stdio.h>
informix, Ecole d'ingénieurs
Les passions font vivre l'Homme; sa sagesse le fait seulement durer.

informix
Membre fondamental
Membre fondamental

Messages : 350
Inscrit le : 19 Mar 2007

Feuille de personnage
Capacité linguistique:
1000/1000  (1000/1000)

Revenir en haut Aller en bas

Re: Calcul de la date du lendemain

Message par manianis le Dim 25 Nov - 21:00

Trés bonne adapation. Félicitations, Nabil.

manianis
Admin
Admin

Sexe:Masculin
Messages : 976
Inscrit le : 10 Oct 2007
Localisation : Tunisie

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

Revenir en haut Aller en bas

Re: Calcul de la date du lendemain

Message par methodiX le Lun 26 Nov - 22:23

la version de manianis paraît plus élégante Smile
mais là, sans fonctions, on se sent étouffé Smile
Sami - Methodix, tunis
Le génie de Newton a consisté à dire que la lune tombe alors que tout le monde voit bien qu'elle ne tombe pas.
(Paul Valéry)

methodiX
Admin
Admin

Sexe:Masculin
Messages : 811
Inscrit le : 22 Mar 2007
Localisation : marsa - IPEST

Feuille de personnage
Capacité linguistique:
1000/1000  (1000/1000)

Revenir en haut Aller en bas

Page 2 sur 2 Précédente  1, 2

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum