Calcul de la date du lendemain
Forum INFOMATH :: Enseignement de l'informatique :: INFO - Supérieur (Etudiants et Professionnels) :: C/C++
Page 1 sur 2•
Page 1 sur 2 • 1, 2 
Calcul de la date du lendemain
*****************************************************
Ecrire un programme qui calcule la date du lendemain à partir d’une date quelconque saisie à
partir du clavier.
*****************************************************
#include
void main()
{
int j,mm,aaaa;
printf("donner le jour");
scanf("%d",&j);
printf("donner le mois");
scanf("%d",&mm);
printf("donner le annee");
scanf("%d",&
aaaa);
if ((j>2
&&(mm==02))
{ j=0;
mm=mm+1;
aaaa=aaaa;}
if ((j<31) && (mm<12))
{ j=j+1;
mm=mm;
aaaa=aaaa;
printf("la date est %d %d %d",j,mm,aaaa);}
else if ((j<31) && (mm>12))
{ j=j+1;
mm=1;
aaaa=aaaa;
printf("la date est %d %d %d",j,mm,aaaa);}
else if ((j>=31) && (mm<12))
{ j=1;
mm=mm+1;
aaaa=aaaa;
printf("la date est %d %d %d",j,mm,aaaa);}
else if ((j<31) && (mm<12))
{ j=j+1;
mm=mm;
aaaa=aaaa;
printf("la date est %d %d %d",j,mm,aaaa);}
else if ((j>=31)&&(mm>=12))
{ j=1;
mm=1;
aaaa=aaaa+1;
printf("la date est %d %d %d",j,mm,aaaa);}
}
Ecrire un programme qui calcule la date du lendemain à partir d’une date quelconque saisie à
partir du clavier.
*****************************************************
#include
void main()
{
int j,mm,aaaa;
printf("donner le jour");
scanf("%d",&j);
printf("donner le mois");
scanf("%d",&mm);
printf("donner le annee");
scanf("%d",&
aaaa);
if ((j>2
{ j=0;
mm=mm+1;
aaaa=aaaa;}
if ((j<31) && (mm<12))
{ j=j+1;
mm=mm;
aaaa=aaaa;
printf("la date est %d %d %d",j,mm,aaaa);}
else if ((j<31) && (mm>12))
{ j=j+1;
mm=1;
aaaa=aaaa;
printf("la date est %d %d %d",j,mm,aaaa);}
else if ((j>=31) && (mm<12))
{ j=1;
mm=mm+1;
aaaa=aaaa;
printf("la date est %d %d %d",j,mm,aaaa);}
else if ((j<31) && (mm<12))
{ j=j+1;
mm=mm;
aaaa=aaaa;
printf("la date est %d %d %d",j,mm,aaaa);}
else if ((j>=31)&&(mm>=12))
{ j=1;
mm=1;
aaaa=aaaa+1;
printf("la date est %d %d %d",j,mm,aaaa);}
}
Re: Calcul de la date du lendemain
Slt,
Pour repondre a ta question il faut d'abord savoir que pour obtenir la date du lendemain a partir d'une saisie au clavier il faut :
1- Verifier si les chiffre saisies correspondent a une date ou pas si non ton traitement apres n'aura aucun sens, cela peut se faire en ajoutant un bout de code apres la fin de la saisie qui verifie si j est compris entre 1 et 30 dans le cas ou m est
un mois qui contient 30 jours ....
Tu dois distinguer enfin 3 groupes de date :
- Les dates des mois qui finissent par 31
- Les dates des mois qui finissent par 30
- les dates du mois de Fevrier ( tu dois tester si l'année en question est bissextile )
Bon je te laisse le soin de revoir ton code et de me dire si c'est bon ou pas .
RMQ : if ((j<31) && (mm>12))
se test n'est verifier ke si m>12 c'est à dire 13 et plus ?????!!! comment ça se fait a se que je sache il y a seulement 12 mois lol .
J'attends ta reponse.
Bon travail
Pour repondre a ta question il faut d'abord savoir que pour obtenir la date du lendemain a partir d'une saisie au clavier il faut :
1- Verifier si les chiffre saisies correspondent a une date ou pas si non ton traitement apres n'aura aucun sens, cela peut se faire en ajoutant un bout de code apres la fin de la saisie qui verifie si j est compris entre 1 et 30 dans le cas ou m est
un mois qui contient 30 jours ....
Tu dois distinguer enfin 3 groupes de date :
- Les dates des mois qui finissent par 31
- Les dates des mois qui finissent par 30
- les dates du mois de Fevrier ( tu dois tester si l'année en question est bissextile )
Bon je te laisse le soin de revoir ton code et de me dire si c'est bon ou pas .
RMQ : if ((j<31) && (mm>12))
se test n'est verifier ke si m>12 c'est à dire 13 et plus ?????!!! comment ça se fait a se que je sache il y a seulement 12 mois lol .
J'attends ta reponse.
Bon travail

serenere- Nouveau membre




- Messages : 23
Inscrit le : 19 Mar 2007
Age : 22
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(1000/1000)
Re: Calcul de la date du lendemain
Commentaires très pertinents de la part de serenere.
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1908
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Calcul de la date du lendemain
Je te propose ce programme :
- Code:
#include <iostream>
using namespace std;
int isLeapYear(int year)
{
return ((year % 400 != 0 && year % 4 == 0) || year % 400);
}
int getDaysCount(int month, int year)
{
if (month == 1 || month == 3 || month == 5 ||
month == 7 || month == 8 || month == 10 ||
month == 12)
return 31;
else if (month == 2)
{
return 28 + isLeapYear(year);
}
else return 30;
}
void getDate(int* day, int* month, int* year)
{
cout << "Entrer l'année : ";
cin >> *year;
do
{
cout << "Entrer le mois [1..12] : ";
cin >> *month;
} while (*month < 1 && *month > 12);
int maxDays = getDaysCount(*month, *year);
do
{
cout << "Entrer le jour [1.." << maxDays << "] : ";
cin >> *day;
} while (*day < 1 && *day > maxDays);
}
void nextDay(int* day, int* month, int* year)
{
int maxDays = getDaysCount(*month, *year);
(*day)++;
if (*day > maxDays)
{
*day = 1;
(*month)++;
if (*month > 12)
{
*month = 1;
(*year)++;
}
}
}
int main()
{
int day, month, year;
getDate(&day, &month, &year);
nextDay(&day, &month, &year);
printf("%04d-%02d-%02d\n", year, month, day);
return 0;
}
manianis- Admin


- Messages : 976
Inscrit le : 10 Oct 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Calcul de la date du lendemain
medch
Essaie de bien choisir les titres des messages que tu postes.
Evite les phrases longues comme:
je me demande si ce programme marche ou nn ...
Mets plûtot
Calcul de la date du lendemain
un titre qui résume le contenu...
Essaie de bien choisir les titres des messages que tu postes.
Evite les phrases longues comme:
je me demande si ce programme marche ou nn ...
Mets plûtot
Calcul de la date du lendemain
un titre qui résume le contenu...
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1908
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Calcul de la date du lendemain
medch:
La solution proposée par manianis est en C++, elle utilise des fonctions C.
Et d'après ce que je sais, vous n'avez pas encore étudié les fonctions...
tu peux adapter cette version pour écrire une solution sans Fonctions... OK?
La solution proposée par manianis est en C++, elle utilise des fonctions C.
Et d'après ce que je sais, vous n'avez pas encore étudié les fonctions...
tu peux adapter cette version pour écrire une solution sans Fonctions... OK?
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1908
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Calcul de la date du lendemain
manianis:
ce qui me plait toujours dans vos programmes c'est qu'ils sont très élégants !!!
Juste quelques petites erreurs:
lorsqu'on met: 2000/2/28, le programme retourne 2000/3/1 alors que 2000 est une année bissextile, le lendemain c'est 2000/2/29.
Aussi, il manque un ptit contrôle sur le mois qui doit être entre 1 et 12.
Encore une fois - merci pour l'effort !!!
ce qui me plait toujours dans vos programmes c'est qu'ils sont très élégants !!!
Juste quelques petites erreurs:
lorsqu'on met: 2000/2/28, le programme retourne 2000/3/1 alors que 2000 est une année bissextile, le lendemain c'est 2000/2/29.
Aussi, il manque un ptit contrôle sur le mois qui doit être entre 1 et 12.
Encore une fois - merci pour l'effort !!!
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1908
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Calcul de la date du lendemain
je veux savoir comment tester une variable soit un entier ou non.
mosa- Modérateur




- Messages : 636
Inscrit le : 11 Nov 2007
Age : 23
Localisation : los angeles
Feuille de personnage
Capacité linguistique:


(995/1000)
Re: Calcul de la date du lendemain
mosa a écrit:je veux savoir comment tester une variable soit un entier ou non.
mosa:
Si c'est un autre sujet, poste-le séparément.
C'est pas difficile de vérifier si une variable contient un réel ou un entier.
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1908
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Calcul de la date du lendemain
Admin a écrit:...
Juste quelques petites erreurs:
lorsqu'on met: 2000/2/28, le programme retourne 2000/3/1 alors que 2000 est une année bissextile, le lendemain c'est 2000/2/29.
Merci, oui en effet j'ai oublié d'écrire year % 400 == 0 :
- Code:
int isLeapYear(int year)
{
return ((year % 400 != 0 && year % 4 == 0) || year % 400 == 0);
}
Admin a écrit:
Aussi, il manque un ptit contrôle sur le mois qui doit être entre 1 et 12.
Encore une fois - merci pour l'effort !!!
Non, le controle est déjà fait dans la fonction getDate. Je ne l'ai pas reproduit dans la fonction nextYear pour la simple raison que les erreurs peuvent provenir uniquement de la saisie de l'utilisateur (au moins dans ce programme).
manianis- Admin


- Messages : 976
Inscrit le : 10 Oct 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Calcul de la date du lendemain
Admin a écrit:mosa a écrit:je veux savoir comment tester une variable soit un entier ou non.
mosa:
Si c'est un autre sujet, poste-le séparément.
C'est pas difficile de vérifier si une variable contient un réel ou un entier.
c'est pas un autre sujet mais on veux tester si l'année saisie est un entier
mosa- Modérateur




- Messages : 636
Inscrit le : 11 Nov 2007
Age : 23
Localisation : los angeles
Feuille de personnage
Capacité linguistique:


(995/1000)
Re: Calcul de la date du lendemain
A ce que je connais le C ne nécessite pas ce genre de test car le type est déterminé lors de la définition des variables :
a est un entier même si on fait :
- Code:
int a;
float b;
a est un entier même si on fait :
- Code:
a = sqrt(25); // le résultat sera un entier bien que le compilateur
// puisse générer des avertissements (Warnings)
manianis- Admin


- Messages : 976
Inscrit le : 10 Oct 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Calcul de la date du lendemain
aaah, barakallah fik manianis
mosa- Modérateur




- Messages : 636
Inscrit le : 11 Nov 2007
Age : 23
Localisation : los angeles
Feuille de personnage
Capacité linguistique:


(995/1000)
Re: Calcul de la date du lendemain
mosa a écrit:aaah, barakallah fik manianis
fik aussi akhi, A votre service
manianis- Admin


- Messages : 976
Inscrit le : 10 Oct 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Calcul de la date du lendemain
mosa a écrit:je veux savoir comment tester une variable soit un entier ou non.
il faut dire qu'il est aussi possible de tester si une valeur est entière ou avec virgule flottante... Je vais la poster comme nouveau sujet.
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1908
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Page 1 sur 2 • 1, 2 



