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();
}
}
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.