begin process at 2012 05 27 19:23:02
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > CETTE SOURCE PERMET DE DONNER LA DATE DU LENDEMAIN À PARTIR D'UN DATE SAISIE

CETTE SOURCE PERMET DE DONNER LA DATE DU LENDEMAIN À PARTIR D'UN DATE SAISIE


 Description

Ceci est juste un test de calcul approfondi de dates avec gestion des erreurs et des années bissextiles. Je m'assure que les valeurs saisies sont bien entieres. je fais les calculs necesaires et j'affiche la date du lendemain.
Ceci est juste la premiere version. Merci de me conseiller des ameliorations

Source

  • #include<stdio.h>
  • #include<dos.h>
  • #include<stdlib.h>
  • #include<string.h>
  • #include<conio.h>
  • #define true 32000
  • #define false -31000
  • int jour,mois,annee,maxday,c;
  • char j[10],m[10],a[10];
  • int convertitEntier(char nb); //fonction convertissant une chaine de caractere en entier
  • int estJour(int day); //fonction verifiant qu un entier est un jour valide
  • int estMois(int month); //fonction verifiant qu un entier est un mois valide
  • int estAnnee(int year); //fonction verifiant qu un entier est une annee valide
  • int estDateValide(int day,int month,int year); //fonction verifiant que 3 entier forme une date valide
  • void dateSuivante(int day,int month,int year); //fonction calculant la date du lendemain d'un jour
  • void lecture(void); //fonction permettant la lecture des donnees en entree
  • void animation();
  • //*****************************************************************************************
  • int convertitEntier(char *nb)
  • {
  • char str[25];
  • double num;
  • int sig = 5; /* significant digits */
  • if(strlen(nb)==0)
  • {
  • puts("La valeur saisie n' est pas entiere.\n");
  • return false;
  • }
  • else
  • {
  • gcvt(atoi(nb), sig, str);
  • if(strlen(nb) != strlen(str))
  • {
  • puts("La valeur saisie n'est pas entiere.\n");
  • return false;
  • }
  • else
  • { //printf("\nla valeur convertie est %d",atoi(nb));
  • return (atoi(nb));
  • }
  • }
  • }
  • //******************************************************************************
  • int estJour(int day)
  • {
  • if((day<1)||(day>31))
  • {
  • puts("\nLes jours vont du 1er au 31 en general. Recommencer svp");
  • return false;
  • }
  • else
  • {
  • //printf("\nla valeur du jour est %d",day);
  • return (day);
  • }
  • }
  • //******************************************************************************
  • int estMois(int month)
  • {
  • if((month<1)||(month>12))
  • {
  • puts("\nLes mois vont du 1er au 12. Recommencer svp");
  • return false;
  • }
  • else
  • {
  • //printf("\nla valeur du mois est %d",month);
  • return (month);
  • }
  • }
  • //*******************************************************************************
  • int estAnnee(int year)
  • {
  • if((year<1980)||(year>2050))
  • {
  • puts("\nLes annees varient entre 1980 et 2050. Recommencer svp");
  • return false;
  • }
  • else
  • {
  • //printf("\nla valeur annuelle est %d",year);
  • return (year);
  • }
  • }
  • //*******************************************************************************
  • int estDateValide(int day,int month,int year)
  • {
  • if((month == 4) || (month == 6) || (month == 9) || (month == 11))
  • maxday=30;
  • else
  • {
  • if((month == 1) || (month == 3) || (month == 5) || (month == 7) || (month == 8) || (month == 11) || (month == 12))
  • maxday=31;
  • else
  • maxday=27;
  • }
  • if(year % 4 == 0)
  • if(month == 2)
  • maxday=28;
  • if((day > maxday))
  • return (false);
  • else
  • return (true);
  • }
  • //**********************************************************************************
  • void dateSuivante(int day,int month,int year)
  • {
  • int d,m,y;
  • d=day;
  • m=month;
  • y=year;
  • if(day < maxday)
  • day+=1;
  • else
  • {
  • day=1;
  • if(month < 12)
  • month+=1;
  • else
  • {
  • month=1;
  • year+=1;
  • }
  • }
  • printf("\nle lendemain du %d-%d-%d est le %d-%d-%d",d,m,y,day,month,year);
  • }
  • //********************************************************************************************
  • void lecture(void)
  • {
  • do
  • {
  • clrscr();
  • puts("Ce programme affiche la date du lendemain d'un jour.\n");
  • printf("\nTaper les information requises : ");
  • flushall();
  • printf("\nJour : ");
  • gets(j);
  • flushall();
  • printf("Mois : ");
  • gets(m);
  • flushall();
  • printf("Annee : ");
  • gets(a);
  • flushall();
  • if(((jour = convertitEntier(j)) == false )| ((mois = convertitEntier(m)) == false ) | ((annee = convertitEntier(a)) == false ))
  • printf("\n precision 1 '%d-%d-%d' ",jour,mois,annee);
  • else
  • {
  • if((( estJour(jour)) == false) || (( estMois(mois)) == false) || (( estAnnee(annee)) == false))
  • printf("\nLes bornes sont les suivantes en general : \n 1<jour<31\n 1<mois<12\n 1980<annee<2050");
  • else
  • {
  • if(estDateValide(jour,mois,annee) == false)
  • printf("\n '%d-%d-%d' n'est pas une date valide. Recommencer svp",jour,mois,annee);
  • else
  • dateSuivante(jour,mois,annee);
  • }
  • }
  • puts("\n\n\n Echap pour arreter, sinon n'importe quelle touche.");
  • }while((c=getch()) != 27);
  • animation();
  • }
  • void animation()
  • {
  • for(int i=0;i<75;i++)
  • {
  • gotoxy(i,wherey());
  • delline();
  • printf("Sniper.");
  • delay(30);
  • }
  • delay(500);
  • }
  • //*******************************************************************************
  • int main()
  • {
  • clrscr();
  • lecture();
  • return 0;
  • }
#include<stdio.h>
#include<dos.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>

#define true   32000
#define false -31000
int  jour,mois,annee,maxday,c;
char j[10],m[10],a[10];
int  convertitEntier(char nb);			//fonction convertissant une chaine de caractere en entier
int  estJour(int day);				//fonction verifiant qu un entier est un jour valide
int  estMois(int month);			//fonction verifiant qu un entier est un mois valide
int  estAnnee(int year);			//fonction verifiant qu un entier est une annee valide
int  estDateValide(int day,int month,int year); //fonction verifiant que 3 entier forme une date valide
void dateSuivante(int day,int month,int year);  //fonction calculant la date du lendemain d'un jour
void lecture(void);				//fonction permettant la lecture des donnees en entree
void animation();

//*****************************************************************************************
int convertitEntier(char *nb)
{
	char str[25];
	double num;
	int sig = 5; /* significant digits */
	if(strlen(nb)==0)
	{
		puts("La valeur saisie n' est pas entiere.\n");
		return false;
	}
	else
	{
		gcvt(atoi(nb), sig, str);
		if(strlen(nb) != strlen(str))
		{
			puts("La valeur saisie n'est pas entiere.\n");
			return false;
		}
		else
		{        //printf("\nla valeur convertie est %d",atoi(nb));
			return (atoi(nb));
		}
	}
}
//******************************************************************************
int estJour(int day)
{
	if((day<1)||(day>31))
	{
		puts("\nLes jours vont du 1er au 31 en general. Recommencer svp");
		return false;
	}
	else
	{
		//printf("\nla valeur du jour est %d",day);
		return (day);
	}
}
//******************************************************************************
int estMois(int month)
{
	if((month<1)||(month>12))
	{
		puts("\nLes mois vont du 1er au 12. Recommencer svp");
		return false;
	}
	else
	{
		//printf("\nla valeur du mois est %d",month);
		return (month);
	}
}
//*******************************************************************************
int estAnnee(int year)
{
	if((year<1980)||(year>2050))
	{
		puts("\nLes annees varient entre 1980 et 2050. Recommencer svp");
		return false;
	}
	else
	{
		//printf("\nla valeur annuelle est %d",year);
		return (year);
	}

}
//*******************************************************************************
int estDateValide(int day,int month,int year)
{

	if((month == 4) || (month == 6) || (month == 9) || (month == 11))
		maxday=30;
	else
	{
		if((month == 1) || (month == 3) || (month == 5) || (month == 7) || (month == 8) || (month == 11) || (month == 12))
			maxday=31;
		else
			maxday=27;
	}
	if(year % 4 == 0)
		if(month == 2)
			maxday=28;
	if((day > maxday))
		return (false);
	else
		return (true);

}
//**********************************************************************************
void dateSuivante(int day,int month,int year)
{
	int d,m,y;
	d=day;
	m=month;
	y=year;
	if(day < maxday)
		day+=1;
	else
	{
		day=1;
		if(month < 12)
			month+=1;
		else
		{
			month=1;
			year+=1;
		}
	}
	printf("\nle lendemain du %d-%d-%d est le %d-%d-%d",d,m,y,day,month,year);
}
//********************************************************************************************
void lecture(void)
{
      do
      {
	clrscr();
	puts("Ce programme affiche la date du lendemain d'un jour.\n");
	printf("\nTaper les information requises : ");
	flushall();
	printf("\nJour  : ");
	gets(j);
	flushall();
	printf("Mois  : ");
	gets(m);
	flushall();
	printf("Annee : ");
	gets(a);
	flushall();
	if(((jour = convertitEntier(j)) == false )| ((mois = convertitEntier(m)) == false ) | ((annee = convertitEntier(a)) == false ))
		printf("\n precision 1  '%d-%d-%d' ",jour,mois,annee);
	else
	{
		if((( estJour(jour)) == false) || (( estMois(mois)) == false) || (( estAnnee(annee)) == false))
			printf("\nLes bornes sont les suivantes en general : \n 1<jour<31\n 1<mois<12\n 1980<annee<2050");

		else
		{
			if(estDateValide(jour,mois,annee) == false)
				printf("\n '%d-%d-%d' n'est pas une date valide. Recommencer svp",jour,mois,annee);
			else
				dateSuivante(jour,mois,annee);
		}
	}
	puts("\n\n\n Echap pour arreter, sinon n'importe quelle touche.");
      }while((c=getch()) != 27);
      animation();
}
void animation()
{
	for(int i=0;i<75;i++)
	{
		gotoxy(i,wherey());
		delline();
		printf("Sniper.");
		delay(30);
	}
	delay(500);
}

//*******************************************************************************
int main()
{
	clrscr();
	lecture();
	return 0;
}

 Conclusion

Apres appreciations de votre part, merci de me faire part de vos ameliorations


 Sources du même auteur

Source avec Zip DERIVATION DE POLYNOME

 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

Commentaires et avis

Commentaire de skone007 le 30/10/2004 01:55:19

no comment ...

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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,437 sec (4)

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