Affiche du jour par rapport à une date

Contenu du snippet

Je devait faire un programme en JAVA qui donne le jour de la semaine par rapport à une date, mais j'ai préférée le faire en C.
C'est tout....!

Source / Exemple :


#include <stdlib.h>
#include <stdio.h>
#include <io.h>
#include <math.h>
#include <conio.h>
int toto;

// Acquisition d'une nombre
void nbr()
{
 char caract;
 char tab[99];
 int ptr=0;
 while (caract!='\r')
 {
	caract=getch();
	if (caract>='0' && caract <='9')
	{
	 tab[ptr]=caract;
	 ptr=ptr+1;
	 tab[ptr]='\0';
	 printf("%c",caract);
	}
	if (caract=='\b')
	{
	 if (ptr>0)
	 {
	  ptr=ptr-1;
	  printf("\b \b");
	 }
	}
 }// Fin du while (caract!='\r')
 toto=atoi(tab);
} // Fin du int nbr

void main()
{
/*Variable du main*/
int annee;							//Acquisitiondeladate
int mois;							//Acquisitiondumois
int jour;							//Acquisitiondujours
int mem_jour;
int mem_mois;
int mem_annee;
int jour_fixe=1;
int mois_fixe=1;
int annee_fixe=2006;
int nbr_jour=31;					//Nbrdejourdanslemois
int jour_semaine=7;					//Lejourdelasemaine
int err=0;
//clrscr();
printf("Saisir l annee = ");
nbr();
annee=toto;
printf("\n\rSaisir le mois = ");
nbr();
mois=toto;
printf("\n\rSaisir le jour = ");
nbr();
jour=toto;
mem_annee=annee;
mem_mois=mois;
mem_jour=jour;
printf("\n\rannee= %i / mois =%i / jour =%i",annee,mois,jour);

if(mois>12)err=1;
if(mois<1)err=1;
switch(mois)
{
				case 4:	nbr_jour=30;
							break;
				case 6:	nbr_jour=30;
							break;
				case 9:	nbr_jour=30;
							break;
				case 11:	nbr_jour=30;
							break;
				case 2:	if(annee%100==0)
							{
								if(annee%400==0)
								{
									nbr_jour=29;
								}//Finduif(annee%400==0)
								else
								{
								nbr_jour=28;
								}	
							}//Finduif(annee%100==0)
							else
							{
								if(annee%4==0)
								{
									nbr_jour=29;
								}//Finduif(annee%4==0)
								else
								{
								nbr_jour=28;
								}
						
							}//Finduelseif(annee%100==0)
							break;
				default:	nbr_jour=31;	
			}//Finduswitch(mois)
		if(jour<1) err=1;
		if(jour>nbr_jour) err=1;
		/*Calculdujour*/
		if(err==0)
		{
		while(jour!=jour_fixe)
		{
			if(jour<jour_fixe)
			{
				jour=jour+1;
				jour_semaine=jour_semaine+1;
			}
			if(jour>jour_fixe)
			{
				jour=jour-1;
				jour_semaine=jour_semaine+1;	
			}
		}
		while(mois!=mois_fixe)
		{
			if(mois<mois_fixe)mois=mois+1;
			if(mois>mois_fixe)mois=mois-1;
			nbr_jour=31;
			switch(mois)
			{
				case 4:	nbr_jour=30;
							break;
				case 6:	nbr_jour=30;
							break;
				case 9:	nbr_jour=30;
							break;
				case 11:	nbr_jour=30;
							break;
				case 02:	if(annee%100==0)
							{
								if(annee%400==0)
								{
									nbr_jour=29;
								}//Finduif(annee%400==0)
								else
								{
								nbr_jour=28;
								}	
							}//Finduif(annee%100==0)
							else
							{
								if(annee%4==0)
								{
									nbr_jour=29;
								}//Finduif(annee%4==0)
								else
								{
								nbr_jour=28;
								}
						
							}//Finduelseif(annee%100==0)
							break;
				default:	nbr_jour=31;	
			}//Finduswitch(mois)
			jour_semaine=jour_semaine+nbr_jour;	
		}
		while(annee!=annee_fixe)
		{

			nbr_jour=365;
			if(annee%100==0)
			{
				if(annee%400==0)
				{
					nbr_jour=366;
				}//Finduif(annee%400==0)
				else
				{
					nbr_jour=365;
				}
			}//Finduif(annee%100==0)
			else
			{
				if(annee%4==0)
				{
					nbr_jour=366;
				}//Finduif(annee%4==0)
				else
				{
					nbr_jour=365;
				}

			}//Finduelseif(annee%100==0)
			if(annee<annee_fixe)
			{
				annee=annee+1;
				jour_semaine=jour_semaine-nbr_jour;
			}
			if(annee>annee_fixe)
			{
				annee=annee-1;
				jour_semaine=jour_semaine+nbr_jour;
			}

		}
		//jour_semaine=jour_semaine-mem_mois;
		if(jour_semaine<0)
		{
			while(jour_semaine<=0)
			{
				jour_semaine=jour_semaine+7;
			}
		}
		else
		{
			while(jour_semaine>7)
			{
				jour_semaine=jour_semaine-7;
			}
		}
		printf("\n\rC est un ");
		if (jour_semaine==0) jour_semaine=7;
		if (jour_semaine==8) jour_semaine=1;
		switch(jour_semaine)
		{
			case 1:	printf("Lundi");
						break;
			case 2:	printf("Mardi");
						break;
			case 3:	printf("Mercredi");
						break;
			case 4:	printf("Jeudi");
						break;
			case 5:	printf("Vendredi");
						break;
	case 6:	printf("Samedi");
						break;
	case 7:	printf("Dimanche");
						break;

 }
}
else
{
 printf("\n\rDate incorrect");
}
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.