Prog qui donne le nom du jour d'une date donnée

Contenu du snippet

il est moins long qu'il en a l'air et il est moins dur car j'ai du répeter un algorithme pour chaque mois .
peut etre y a t'il un moyen de faire beaucoup moins long.

Source / Exemple :


//29/02/00 22:54
//crée par skinia
//prog qui donne le nom du jour d'une date donnée
//compilé avec devc++ 4

#include<stdio.h>
#include<conio.c>    //pour clrscr() et gotoxy
#define nmax 1000

main(){
       int j,m,a,j1,i,n,rest,tab[nmax];  //   déclaration des
       int c;                            //     variables
       while(c!='f'){
       gotoxy(57,1);          //place le printf aux coordonées 57,1
       printf("[tapez (f) pour sortir]");
       gotoxy(1,1);
       printf("donnez une date: ");
       scanf("%d %d %d",&j,&m,&a);
       n=2001;                            //
       j1=1;                              //
       if(n<a){                           //
       while(n<a){                        //
       while(n%4!=0&&n<a){                //
            n++;                          //
            j1++;                         //
            if(j1==8)j1=1;                //
       }                                  //
       while(n%4==0&&n<a){                //
            n++;                          //
            j1=j1+2;                      //
            if(j1==8) j1=1;               //
            if(j1==9) j1=2;               //
       }                                  //
       }                                  //
       }                                  //
       if(n>a){                           //
       while(n>a){                        //
       while((n-1)%4!=0&&n>a){            //
            n=n-1;                        //
            j1=j1-1;                      //
            if(j1==0) j1=7;               //
       }                                  //
       while((n-1)%4==0&&n>a){            //
            n=n-1;                        //
            j1=j1-2;                      //
            if(j1==0) j1=7;               //
            if(j1==-1) j1=6;              //
       }                                  //
       }                                  //
       }                                  //
       j1=j1;                            //  algorithme qui donne le nom du jour du 1er janvier d'une année donnée
       switch(m){
                 case 1:clrscr();
                        if(j<=31){
                        for(i=0;i<j;i++){
                            tab[i]=j1+i;
                            if(tab[i]<=7) rest=tab[i];
                            else rest=tab[i]%7;
                        }
                        if(rest==0) rest=7;
                        }
                        else rest=10;
                        break;
                 case 2:clrscr();
                        if(a%4==0){
                         if(j<=29){
                           for(i=0;i<j+31;i++){
                               tab[i]=j1+i;
                               if(tab[i]<=7) rest=tab[i];
                               else rest=tab[i]%7;
                           }
                          }
                          else rest=10;
                        }
                        else {
                          if(j<=28){
                             for(i=0;i<j+31;i++){
                                 tab[i]=j1+i;
                                 if(tab[i]<=7) rest=tab[i];
                                 else rest=tab[i]%7;
                             }
                          }
                          else rest=10;
                        }
                        if(rest==0) rest=7;
                         break;
                 case 3:clrscr();
                        if(a%4==0){
                         if(j<=31){
                           for(i=0;i<j+60;i++){
                               tab[i]=j1+i;
                               if(tab[i]<=7) rest=tab[i];
                               else rest=tab[i]%7;
                           }
                         }
                         else rest=10;
                        }
                        else {
                          if(j<=31){
                             for(i=0;i<j+59;i++){
                                 tab[i]=j1+i;
                                 if(tab[i]<=7) rest=tab[i];
                                 else rest=tab[i]%7;
                             }
                          }
                          else rest=10;
                        }
                        if(rest==0) rest=7;
                         break;
                 case 4:clrscr();
                        if(a%4==0){
                          if(j<=30){
                           for(i=0;i<j+91;i++){
                               tab[i]=j1+i;
                               if(tab[i]<=7) rest=tab[i];
                               else rest=tab[i]%7;
                           }
                          }
                          else rest=10;
                        }
                        else {
                          if(j<=30){
                             for(i=0;i<j+90;i++){
                                 tab[i]=j1+i;
                                 if(tab[i]<=7) rest=tab[i];
                                 else rest=tab[i]%7;
                             }
                          }
                          else rest=10;
                        }
                        if(rest==0) rest=7;
                         break;
                 case 5:clrscr();
                        if(a%4==0){
                          if(j<=31){
                           for(i=0;i<j+121;i++){
                               tab[i]=j1+i;
                               if(tab[i]<=7) rest=tab[i];
                               else rest=tab[i]%7;
                           }
                          }
                          else rest=10;
                        }
                        else {
                          if(j<=31){
                             for(i=0;i<j+120;i++){
                                 tab[i]=j1+i;
                                 if(tab[i]<=7) rest=tab[i];
                                 else rest=tab[i]%7;
                             }
                          }
                          else rest=10;
                        }
                        if(rest==0) rest=7;
                         break;
                 case 6:clrscr();
                        if(a%4==0){
                         if(j<=30){
                           for(i=0;i<j+152;i++){
                               tab[i]=j1+i;
                               if(tab[i]<=7) rest=tab[i];
                               else rest=tab[i]%7;
                           }
                         }
                         else rest=10;
                        }
                        else {
                          if(j<=30){
                             for(i=0;i<j+151;i++){
                                 tab[i]=j1+i;
                                 if(tab[i]<=7) rest=tab[i];
                                 else rest=tab[i]%7;
                             }
                          }
                          else rest=10;
                        }
                        if(rest==0) rest=7;
                         break;
                 case 7:clrscr();
                        if(a%4==0){
                         if(j<=31){
                           for(i=0;i<j+182;i++){
                               tab[i]=j1+i;
                               if(tab[i]<=7) rest=tab[i];
                               else rest=tab[i]%7;
                           }
                         }
                         else rest=10;
                        }
                        else {
                          if(j<=31){
                             for(i=0;i<j+181;i++){
                                 tab[i]=j1+i;
                                 if(tab[i]<=7) rest=tab[i];
                                 else rest=tab[i]%7;
                             }
                          }
                          else rest=10;
                        }
                        if(rest==0) rest=7;
                         break;
                 case 8:clrscr();
                        if(a%4==0){
                         if(j<=31){
                           for(i=0;i<j+213;i++){
                               tab[i]=j1+i;
                               if(tab[i]<=7) rest=tab[i];
                               else rest=tab[i]%7;
                           }
                         }
                         else rest=10;
                        }
                        else {
                          if(j<=31){
                             for(i=0;i<j+212;i++){
                                 tab[i]=j1+i;
                                 if(tab[i]<=7) rest=tab[i];
                                 else rest=tab[i]%7;
                             }
                          }
                          else rest=10;
                        }
                        if(rest==0) rest=7;
                         break;
                 case 9:clrscr();
                        if(a%4==0){
                         if(j<=30){
                           for(i=0;i<j+244;i++){
                               tab[i]=j1+i;
                               if(tab[i]<=7) rest=tab[i];
                               else rest=tab[i]%7;
                           }
                         }
                         else rest=10;
                        }
                        else {
                          if(j<=30){
                             for(i=0;i<j+243;i++){
                                 tab[i]=j1+i;
                                 if(tab[i]<=7) rest=tab[i];
                                 else rest=tab[i]%7;
                             }
                          }
                          else rest=10;
                        }
                        if(rest==0) rest=7;
                         break;
                 case 10:clrscr();
                         if(a%4==0){
                          if(j<=31){
                           for(i=0;i<j+274;i++){
                               tab[i]=j1+i;
                               if(tab[i]<=7) rest=tab[i];
                               else rest=tab[i]%7;
                           }
                          }
                          else rest=10;
                        }
                        else {
                          if(j<=31){
                             for(i=0;i<j+273;i++){
                                 tab[i]=j1+i;
                                 if(tab[i]<=7) rest=tab[i];
                                 else rest=tab[i]%7;
                             }
                          }
                          else rest=10;
                        }
                        if(rest==0) rest=7;
                         break;
                 case 11:clrscr();
                         if(a%4==0){
                          if(j<=30){
                           for(i=0;i<j+305;i++){
                               tab[i]=j1+i;
                               if(tab[i]<=7) rest=tab[i];
                               else rest=tab[i]%7;
                           }
                         }
                         else rest=10;
                        }
                        else {
                          if(j<=30){
                             for(i=0;i<j+304;i++){
                                 tab[i]=j1+i;
                                 if(tab[i]<=7) rest=tab[i];
                                 else rest=tab[i]%7;
                             }
                          }
                          else rest=10;
                        }
                        if(rest==0) rest=7;
                         break;
                 case 12:clrscr();
                         if(a%4==0){
                          if(j<=31){
                           for(i=0;i<j+335;i++){
                               tab[i]=j1+i;
                               if(tab[i]<=7) rest=tab[i];
                               else rest=tab[i]%7;
                           }
                          }
                          else rest=10;
                        }
                        else {
                          if(j<=31){
                             for(i=0;i<j+334;i++){
                                 tab[i]=j1+i;
                                 if(tab[i]<=7) rest=tab[i];
                                 else rest=tab[i]%7;
                             }
                          }
                          else rest=10;
                        }
                        if(rest==0) rest=7;
                        break;
                 default: rest=10;
                          clrscr();
       }
       gotoxy(30,8);
       if(rest==1) printf("lundi %d/%d/%d\n",j,m,a);
       if(rest==2) printf("mardi %d/%d/%d\n",j,m,a);
       if(rest==3) printf("mercredi/%d/%d %d\n",j,m,a);
       if(rest==4) printf("jeudi %d/%d/%d\n",j,m,a);
       if(rest==5) printf("vendredi %d/%d/%d\n",j,m,a);
       if(rest==6) printf("samedi %d/%d/%d\n",j,m,a);
       if(rest==7) printf("dimanche %d/%d/%d\n",j,m,a);
       if(rest==10) printf("abruti(e)");
       c=getch();
       }
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.