Programme de date en langage C

Fermé
Mouaad1991 Messages postés 12 Date d'inscription lundi 9 janvier 2012 Statut Membre Dernière intervention 25 mars 2012 - Modifié par Mouaad1991 le 9/01/2012 à 15:25
Mouaad1991 Messages postés 12 Date d'inscription lundi 9 janvier 2012 Statut Membre Dernière intervention 25 mars 2012 - 16 janv. 2012 à 00:06
Bonjour,
Je voudrais une correction de cet exercice en langage C avec le switch :
"Ecrire un programme qui lit une date et un nombre de jours (entier positive ou negative entre -20 et 20 ) et affiche la date anterieure ou posterieure en fonction d'un nombre de jours donnees"
j'ai essayer de le faire , mais j'ai fais surement des fautes dans les partitions des instructions.
je voudrais la correction avant le 11/01/2012 . Merci d'avance
Exemple:
12/03/2005 -6 06/03/2005

7 réponses

Mouaad1991 Messages postés 12 Date d'inscription lundi 9 janvier 2012 Statut Membre Dernière intervention 25 mars 2012 4
16 janv. 2012 à 00:06
bon voila je l'ai fait le programme sachant que la date qui saisi l'utilisateur est valide:
#include<stdio.h>
#include<conio.h>
main()
{
unsigned int J,M,A,NBJ,ANT=0,B;
printf("Entrez la date J/M/A :");
scanf("%d %d %d ",&J,&M,&A);
printf("\nNBJ");
scanf("%d",&NBJ);
J=J+NBJ;B=(!(A%4)&&(A%100)||(A%400));
//cas positif
if(J>28&&B==0&&M==2)
{M=3;J-=28;}
else
if(J>29&&B==1&&M==2)
{M=3;J=J-29;}
else
if(J>31&&(M==1||M==3||M==5||M==7||M==8||M==10))
{M++;J=J-31;}
else
if(J>30&&(M==4||M==6||M==9||M==11))
{M++;J=J-30;}
else
if(J>31&&M==12)
{M=1;J=J-31;A++;}
else//cas negatif
if(J<1&&M==3&&B==0)
{M=2;J=J+28;}
else
if(J<1&&M==3&&B==1)
{M=2;J=J+29;}
else
if(J<1&&(M==5||M==7||M==10||M==12))
{M--;J=J+30;}
else
if(J<1&&(M==2||M==4||M==6||M==8||M==9||M==11))
{M--;J=J+31;}
else
if(J<1&&M==1)
{M=12;J=J+31;A--;}
ANT=1;
if(ANT)
printf("La date anterieure est %d/%d/%d",J,M,A);
else
printf("La date posterieure est %d/%d/%d",J,M,A);
getch();
}
4