1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| #include <stdio.h>
#include <stdlib.h>
int main() {
int annee;
int premierjanvier, a, b, c;
int bissextille=0;
int joursparmois, jour, mois, sem, jour1;
int tj[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
const char *tm[] = {"","JANVIER","FEVRIER","MARS","AVRIL","MAI","JUIN",
"JUILLET","AOUT","SEPTEMBRE","OCTOBRE","NOVEMBRE","DECEMBRE"};
// definition de l'annee
printf("quelle annee ?\n");
scanf("%d",&annee);
// le 1 janvier tombe quel jour
a = ( annee - 1) / 4;
b = ( annee - 1) / 100;
c = ( annee - 1) / 400;
premierjanvier = (7 + annee + a - b + c) % 7; // dim=0, lun=1, mar=2, ...
// l'annee est-elle bissextile ? 1=oui 0=non (par defaut)
if ( (annee%4==0 && annee%100!=0) || (annee%400==0) ) {
bissextille=1;
}
// affichage
jour1=premierjanvier;
for (mois=1;mois<=12;mois++) {
printf("\n%s %d\n",tm[mois],annee);
printf("---------------------------------\n");
printf("Lun Mar Mer Jeu Ven Sam Dim\n");
if ( mois == 2 ) {
joursparmois = tj[mois] + bissextille;
} else {
joursparmois = tj[mois];
}
sem = jour1 - 1;
if ( sem==-1 ) {
sem=6;
}
for (jour=0;jour<sem;jour++) {
if ( jour == 0 ) {
printf(" ");
} else {
printf(" ");
}
}
for (jour=1;jour<=joursparmois;jour++) {
sem = (jour + jour1 - 1) % 7;
sem--;
if ( sem==-1 ) {
sem=6;
}
if ( sem == 0 ) {
printf(" %2d",jour);
} else if ( sem == 6 ) {
printf(" %2d\n",jour);
} else {
printf(" %2d",jour);
}
}
printf("\n\n" );
jour1 = (jour1 + joursparmois) % 7;
}
return 0;
} |
Partager