Date du lendemain en C

leo1982 Messages postés 2 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 13 juin 2016 - 13 juin 2016 à 18:16
nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 - 16 juin 2016 à 15:31
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/101516-date-du-lendemain-en-c

nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 17
Modifié par nagaD.scar le 16/06/2016 à 15:32
Salut,

Je te l ai un peu modifié pour qu'il soit un peu moins "essouflant" à lire, en gardant exactement le même principe.

#include<stdio.h>
#include<stdlib.h>
int main(){
  int jr,moi,an,maxjr,test;
  int isOk = 0;//sera mieux pour le test plutot que de le (le test) recopier pour le if ET le while 
  do {
 printf(" entrez la date au format:JJ MM AAAA (l'annee entre 1500 et 3000)\n\n");
 test=scanf("%d %d %d",&jr,&moi,&an);
 if(test!=3){              //test contient le nombre de valeur corect entrez par l'utilisateur
  scanf("%*[^\n]");     //si test est different de 3, on vite le buffer pour eviter que le programe plante
  getchar();/*         jr=0;moi=0;an=0;         *///ensuite je met une mauvaise valeur dans jr,moi et an pour ne pa sortir du while -> plus besoin
 }
 else{
  maxjr = ( moi == 2 ? 28 + (!moi % 4 ? 1 : 0) : 30 + ( moi < 8 ? moi % 2 : (moi+1) % 2 ) );
  if((jr>maxjr)||(jr<1)||(moi>12)||(moi<1)||(an<1500)||(an>3000))
   printf("\n Mauvaise date, essayez encore \n\n\a");
  else
   isOk=1;
 }    
    }while(isOk==0);
 
 jr++;
 if(jr>maxjr){
  jr=1;
  moi++;
  if(moi>12){
   an++;
   moi=1;
  }
 }
 printf("la date du lendemain est: %d %d %d",jr,moi,an);
 getchar();
 return 0;
}


Simplement pour te donner le point de vue d un autre dev ^^
Rejoignez-nous