begin process at 2012 05 27 13:20:08
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > AFFICHE DU JOUR PAR RAPPORT À UNE DATE

AFFICHE DU JOUR PAR RAPPORT À UNE DATE


 Information sur la source

Note :
7,67 / 10 - par 3 personnes
7,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date / Heure Classé sous :semaine, jour, date Niveau :Débutant Date de création :21/02/2006 Vu :11 750

Auteur : Pacifica

Ecrire un message privé
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

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

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

}



 Sources du même auteur

INTERFACE POUR LE RPG VAMPIRE LA MASCARADE
Source avec Zip UNE CALCULATRICE TRES SIMPLE D'UTILISATION
Source avec Zip COMPARAISON ENTRE L'HEURE DU BIOS ET L'HEURE DU SYTÉME
ENVOIE D'UN CARACTERE PAR CARACTÉRE EN FULL DUPLEX SUR LE PO...

 Sources de la même categorie

DATETIMECONVERTER par guill76
Source avec Zip CLASSE DE DATE LOCALISÉE (20 LANGUES) par exar
Source avec Zip CLASSE MOMENT V2.0 par le_duche
CALCUL DATE DE PAQUES (DATE MOBILE) par steph12358
Source avec une capture VACCATION (AVEC FONCTION) CONSOLERIE, REMIX GCC par sebman

 Sources en rapport avec celle ci

Source avec Zip JOUR DE NAISSANCE par fredg19
Source avec une capture ALGORITHME DE MAURICE KRAITCHIK (1882&#65533;1957) par thebroyeur
JOUR A PARTIR D'UNE DATE MM/JJ/YYYY par elkasimi2007
Source avec Zip Source avec une capture DELAMBRE par ralebole
COMMENT SAVOIR QUEL JOUR ÉTAIT-ON À UNE TELLE DATE? par tekila_bandita

Commentaires et avis

Commentaire de Joky le 23/02/2006 01:26:13

switch(mois)
{
   case 1:
   case 3:
   case 5:
   case 7:
   case 8:
   case 10:
   case 12:
     nb_Jour = 31;
   break;

//etc...
}
c'est mieux j'trouve

Commentaire de Pacifica le 23/02/2006 22:03:36

Tu testerai où le mois de février, et les mois de 30 jours ? Après le mois de 31 jours ?
Normalement du faites que j'initialise à 31 avant le switch(mois)
, je ne teste que les cas où j'ai pas 31 jours, et de plus je le remets dans le défaut du switch(mois) ???
Pour ma part, normal c'est mon code, lol, je préfére ma méthode...mais bon !

Commentaire de Joky le 23/02/2006 22:10:56

Ah nan mais c'est parce que t'as pas compris le
//etc...
ça veut dire qu'après tu as juste à continuer pour les mois de 30 jours et de 28/29 jours
fin bref c'est ta source c'est vrai, c'est juste des lignes superflues que t'as écrit

Commentaire de tekila_bandita le 24/02/2006 13:14:01

Cette source remplit parfaitement son objectif, ce qui fait déja donc pour le moment une note de 5/5, en revanche pour la clarté du code et la maintenance, elle mérite à peu près 0/1, ce qui fait donc une note totale de 5/6...
En revanche, pour ce qui est de ton algorithme, je pense que tu t'es bien cassé la tête pour un rien, ton code est gros pour peu de choses, et il est donc plus lent ! Je metrais donc un 2/4 pour l'algorithme juste parce que tu as vraiment du te cassé les "bonbons" pour l'ecrire...
Si tu veux, moi j'ai fait une source ayant exactement le meme but, en C aussi, mais avec une methode de calcul beaucoup plus courte, beaucoup plus efficace, et pouvant etre réutilisée dans d'autres calculs...
Va voir ma source, elle est dans la meme categorie que la tienne (Date/heure), et est juste en dessous de la tienne...
Voila, j'ai tout dis !
bonne continuation, et à l'avenir tache d'utiliser les formules que de gentils mathematiciens se sont encore plus compliqué la vie a trouver, afin de simplifier la notre...

Commentaire de Pacifica le 24/02/2006 20:19:34

merci pour l'info. J'effectuerai plus de recherche la prochaine fois que je ferai du code.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

création de fichier [ par freeze ] Salut à tous,je voudrais créer un fichier qui reprendrai la date du jourPar exemple 0110022.zip pour un fichier zip du 01/10/2002En fait je voudrais é Connaitre le numéro de semaine pour une date donnée [ par diouck ] SalutJe sais qu'en VB il est possible de connaitre le numéro de semaine d'une date donnée avec la fonction suivante :"NumWeek.Text = DatePart("ww", Da compiler en c++ avec la date [ par Ganaga ] Bonjour, Je cherche un moyen de compiler un programme en c++ qui inclu la date du jour en dur. &#199;a permettrai d'indiquer dans un fichier ex&#233; Retrouver le numero de semaine à partir d'une date [ par sebclick ] Bonjour,Je recherche une fonction qui permet de retrouver le num&#233;ro de semaine &#224; partir d'une date.Je passe en param&#232;tre 08 12 2005 et calendrier [ par chinois57 ] bjr tt le monde mon prof de math ma demander de faire un calendier perpituel en C mais je coince un peu bcp "please help me" ma source est :#include & SQL et date ! [ par Nixeus ] Bonjour à tous !Le programme que je développe doit comptabiliser des passages ( carte magnétiques) chaque jour ( afin d'en faire des statistiques)Voic programmatione en C [ par badramus ] bonjour tout le monde j'aimerais que vous m'aidez pour un projet &#224; rendre le 15 mai&nbsp;le projet present&#233; ci dessous1&nbsp; pour une date donner la date avec le jour et mois et annee [ par abdokayane ] bjr svp je cherche une applaication avec langage c qui permet de donner le date avec le jour le mois et l annee lorsq je veux ajouter des jours par ex probleme de constucteur urgent [debutant] [ par yanne1985 ] salut class date{ int jour,mois,annee; public: date(int jour=0, int mois=0, int annee=0)     {     this-&gt;jour=jour;     this-&gt;mois=mois;     t aide pour dvpmt C [ par Stuntfire62 ] Bonjour,j' ai un pb pour un code en C, j'ai plusieurs choses a faire.je dois écrire une fonction permettant de comparer deux dates dans un tableau qui


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,952 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales