Petit calendrier

jeff -  
 jeff -
Bonjour,
jai un souci avec une fonction qui demande une date de depar avec le jour et le mois et on doit charcher une finale sachant que la duree separant ces deux dates est de 45 jours
voici ce que j'ai essayé de faire

#include<stdio.h>
#include<stdlib.h>

main()
{

int m; // representant le mois
int b;// compteur de jour;
int maxj;// jour maximal dun mois donné
int a;// premier jour de projection
int j;// representant le jour final

do
{
printf("entre le premier mois\n");
scanf("%d",&m);
}
while(m<1||m>12);

if(m==1||m==3||m==5||m==7||m==8||m==10||12)
{

do
{
printf("entre le premier jour\n");
scanf("%d",&a);
}
while(a<1||a>31);
}

else if(m==2)
{
do
{
printf("entre le premier jour\n");
scanf("%d",&a);
}
while(a<1||a>28);
}

else
{
do
{
printf("entre le premier jour\n");
scanf("%d",&a);
}
while(a<1||a>30);
}

printf("le premier jour est %d/%d\n",a,m);

b=a+45;

do
{

if(m==1||m==3||m==5||m==7||m==8||m==10||12)
{
maxj=31;
}

else if(m==2)
{
maxj=28;
}

else
{
maxj=30;
}

j=b-maxj;

if(j>maxj)
{
m=m+1;
}
else
{
printf("\n");
}

}
while(j<maxj);

printf("la date finale est %d/%d\t",j,m);

system("pause");
}
A voir également:

1 réponse

swoog42 Messages postés 1178 Statut Membre 244
 
Essaye de passer par le timestamp, ca sera plus simple a gérer...
En gros, tu saisis le mois et le jour (et l'année ?) comme prévu, tu transfomes en timestamp. Ensuite tu récupère le nombre de secondes qu'il y a dans 45 jours (45*24*3600) et tu compares à ta date de départ avec un simple teste... tu n'auras pas besoin de gérer les mois 31, 30, 28 et les années bissextiles ;)

Cette page peut t'aider
https://c.developpez.com/faq/?page=Gestion-des-dates-et-heures
0
jeff
 
ok merci beaucoup mais je ne vois pas comment je vais incrementer 45 jours a partir de la date de depart
0