Bonjour,
J'ai quelques problèmes dans mon projet C.
Le but étant d'afficher un calendrier. Mon problème étant de trouver un moyen de créer une sorte de tableau 3 colonnes (4 lignes après itération). j'aimerais après avoir afficher janvier, refaire ma bouche mais a droite de janvier, puis de meme pour le 3eme mois et ensuite revenir à la ligne au moment de revenir dans la 1ere colonne. J'aimerais donc réussir à créer une condition pour laquelle je suis dans la colonne gauche milieu ou droite.
Merci.
Voici mon prog :
#include <stdio.h>
#include <stdlib.h>
int jour_dans_mois[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
char tmois[13][10]={" ","janvier","fevrier","mars","avril","mai","juin","juillet","aout","septembre","octobre","novembre","decembre"};
int entrerannee(void)
{
int annee;
printf("Entrer une annee a partir de 1583 : " );
scanf("%d", &annee);
return annee;
}
int determinationdujourun(int annee)
{
int jourun;
int d1, d2, d3;
d1 = (annee - 1.)/ 4.0;
d2 = (annee - 1.)/ 100.;
d3 = (annee - 1.)/ 400.;
jourun = (annee + d1 - d2 + d3) %7;
return jourun;
}
int bissextile(int annee)
{
if(annee% 4 == 0 && annee%100 != 0 || annee%400 == 0)
{
jour_dans_mois[2] = 29;
return 1;
}
else
{
jour_dans_mois[2] = 28;
return 0;
}
}
void calendrier(int annee, int jourun)
{
int mois, jour;
printf("\n\n %d",annee);
for ( mois = 1; mois <= 12; mois++ )
{
printf("\n\n\t %s\t", tmois[mois]);
printf("\ndim lun mar mer jeu ven sam\n" );
for ( jour = 1; jour <= 1 + jourun * 5; jour++ )
{
printf(" " );
}
for ( jour = 1;jour <= jour_dans_mois[mois]; jour++ )
{
printf("%2d", jour );
if ( ( jour + jourun ) % 7 > 0 )
printf(" " );
else
printf("\n " );
}
jourun = ( jourun + jour_dans_mois[mois] ) % 7;
}
}
void calendrierdumois (int annee, int mois, int jourun)
{
int jour;
printf("%s ",tmois[mois]);
printf("\ndim lun mar mer jeu ven sam\n" );
for ( jour = 1; jour <= 1 + jourun * 5; jour++ )
{
printf(" " );
}
for ( jour = 1; jour <= jour_dans_mois[mois]; jour++ )
{
printf("%2d", jour );
if ( ( jour + jourun ) % 7 > 0 )
printf(" " );
else
printf("\n " );
}
jourun = ( jourun + jour_dans_mois[mois] ) % 7;
}
int main(void)
{
int choix, annee, mois, jour, jourun;
printf("Que voulez vous faire:\n" );
printf("Lire le calendrier d'une année taper 1\n" );
printf("Lire le calendrier d'un mois taper 2 \n" );
printf("Lire une date particuliere taper 3\n==>" );
scanf ("%d",&choix);
switch (choix)
{
case 1: annee = entrerannee();
jourun = determinationdujourun(annee);
bissextile(annee);
calendrier(annee, jourun); break;
case 2: annee = entrerannee();
jourun = determinationdujourun(annee);
bissextile(annee);
printf("Entrer un mois entre 1 et 12: " );
scanf ("%d",&mois);
calendrierdumois(annee,mois, jourun);break;
case 3: annee = entrerannee();
jourun = determinationdujourun(annee);
bissextile(annee);
printf("Entrer un mois entre 1 et 12: " );
scanf ("%d",&mois);
printf("Entrer un jour entre 1 et 31: " );
scanf ("%d",&jour);break;
default: printf("Erreur\n" );
}
printf("\n" );
return 0;
}