begin process at 2010 02 10 00:14:17
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > VACCATION (AVEC FONCTIONS) CONSOLERIE VCPP6

VACCATION (AVEC FONCTIONS) CONSOLERIE VCPP6


 Information sur la source

Note :
Aucune note
Catégorie :Date / Heure Niveau :Débutant Date de création :12/09/2003 Date de mise à jour :13/06/2004 05:41:50 Vu :2 359

Auteur : sebman

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

 Description

Ce programme me sert en quelque sorte d'emploi du temps,
En effet je ne travail pas comme tout le monde, c-a-d 5 jours ouvrables
+ 1 week-end, je bosse en cycle de 8 vaccations:
1° Vaccation----> 1° Nuit
2° Vaccation----> 1° Descente de nuit
3° Vaccation----> 1° Journee
4° Vaccation----> 2° Nuit
5° Vaccation----> 2° Descente de nuit
6° Vaccation----> 2° Journee
7° Vaccation----> 1° Repos
8° Vaccation----> 2° Repos

A noté qu'il n'y a pas de controle pour les jours c-a-d ke le 30 Fevrier,
ou encore le 42 Decembre existe pour le prog !!!!
Des ke j'aurais 5 minutes  je modifierai  ce petit bug

Source

  • /* Ce programme me sert en quelque sorte d'emploi du temps,
  • En effet je ne travail pas comme tout le monde, c-a-d 5 jours ouvrables
  • + 1 week-end, je bosse en cycle de 8 vaccations:
  • 1° Vaccation----> 1° Nuit
  • 2° Vaccation----> 1° Descente de nuit
  • 3° Vaccation----> 1° Journee
  • 4° Vaccation----> 2° Nuit
  • 5° Vaccation----> 2° Descente de nuit
  • 6° Vaccation----> 2° Journee
  • 7° Vaccation----> 1° Repos
  • 8° Vaccation----> 2° Repos
  • */
  • #include <iostream.h>
  • #include <stdio.h>
  • #include <sys\\timeb.h>
  • /* Declaration des Variables */
  • int JourSaisie;
  • int MoisSaisie;
  • int AnneeSaisie;
  • int Fevrier;
  • int MaxJours;
  • int Annee2000 = 2000;
  • int EcartAnnees;
  • int AnneesBissextiles;
  • int EcartJoursAnnees;
  • int TotalJoursMois;
  • int NombreDeJours;
  • int Vaccation;
  • long i;
  • /* Declaration des Fonctions */
  • int ControlJour();
  • int AnneeBissextile ();
  • int Annees ();
  • int NombreAnneeBissextile ();
  • int NombreJoursAnnees ();
  • int NombresJourAnneeSaisie ();
  • int TotalJours ();
  • int NomVaccation ();
  • int Attente ();
  • main ()
  • {
  • // On commence par la saisie de la Date
  • printf(" Entrez une date au format 18/05/1976: ");
  • scanf(" %d / %d / %d", &JourSaisie, &MoisSaisie, &AnneeSaisie);
  • // Execution des fonctions les unes après les autres
  • AnneeBissextile ();
  • Annees();
  • NombreAnneeBissextile ();
  • ControlJour();
  • NombreJoursAnnees ();
  • NombresJourAnneeSaisie ();
  • TotalJours ();
  • NomVaccation ();
  • Attente ();
  • return 0;
  • }
  • ControlJour()
  • {
  • switch (MoisSaisie)
  • {
  • case 1: MaxJours = 31;break;
  • case 2: MaxJours = Fevrier;break;
  • case 3: MaxJours = 31;break;
  • case 4: MaxJours = 30;break;
  • case 5: MaxJours = 31;break;
  • case 6: MaxJours = 30;break;
  • case 7: MaxJours = 31;break;
  • case 8: MaxJours = 31;break;
  • case 9: MaxJours = 30;break;
  • case 10: MaxJours = 31;break;
  • case 11: MaxJours = 30;break;
  • case 12: MaxJours = 31;break;
  • default: printf("Vous vous etes plantes lors de la saisie du mois !!!\\n");break;
  • }
  • if (JourSaisie <1 || JourSaisie> MaxJours)
  • printf ("\\n\\n ----> Erreur dans la saisie du Jour de la date !!!");
  • return MaxJours;
  • }
  • // Calcul le nombre d'annee par rapport à la Date de référence
  • // qui n'est autre que le 01/01/2000 qui est elle même 1 année
  • // bissextile (d'ou le -1)
  • Annees ()
  • {
  • EcartAnnees= AnneeSaisie-Annee2000-1;
  • return EcartAnnees;
  • }
  • // Calcul du nombre d'annees bissextile entre l'annee saisie et
  • // l'annee 2000
  • NombreAnneeBissextile ()
  • {
  • AnneesBissextiles= (EcartAnnees / 4);
  • return AnneesBissextiles;
  • }
  • // Ici on calcul le nombre de jour entre les annees
  • NombreJoursAnnees ()
  • {
  • EcartJoursAnnees= (AnneesBissextiles* 366) + ((EcartAnnees-AnneesBissextiles)*365);
  • return EcartJoursAnnees;
  • }
  • // La fonction suivante détermine si l'annee est bissextile
  • // si c'est le cas le mois de Fevrier vaudra 29 jours
  • // autrement il vaudra 28 jours
  • AnneeBissextile ()
  • {
  • if ((AnneeSaisie % 4 ) == 0)
  • {Fevrier= 29;
  • printf(" annee bissextille");}
  • else
  • {Fevrier= 28;}
  • return Fevrier;
  • }
  • // Là on détermine le nombre de jours entre le 1° du mois
  • // et le 01/01/2000
  • NombresJourAnneeSaisie ()
  • {
  • switch (MoisSaisie)
  • {
  • case 1: TotalJoursMois = 0;break;
  • case 2: TotalJoursMois = 31;break;
  • case 3: TotalJoursMois = 31+Fevrier;break;
  • case 4: TotalJoursMois = 31+Fevrier+31;break;
  • case 5: TotalJoursMois = 31+Fevrier+31+30;break;
  • case 6: TotalJoursMois = 31+Fevrier+31+30+31;break;
  • case 7: TotalJoursMois = 31+Fevrier+31+30+31+30;break;
  • case 8: TotalJoursMois = 31+Fevrier+31+30+31+30+31;break;
  • case 9: TotalJoursMois = 31+Fevrier+31+30+31+30+31+31;break;
  • case 10: TotalJoursMois = 31+Fevrier+31+30+31+30+31+31+30;break;
  • case 11: TotalJoursMois = 31+Fevrier+31+30+31+30+31+31+30+31;break;
  • case 12: TotalJoursMois = 31+Fevrier+31+30+31+30+31+31+30+31+30;break;
  • default: printf("Vous vous etes plantes lors de la saisie du mois !!!\\n");break;
  • }
  • return MoisSaisie;
  • }
  • //Addition des Jours
  • TotalJours ()
  • {
  • NombreDeJours= TotalJoursMois+EcartJoursAnnees+JourSaisie;
  • return NombreDeJours;
  • }
  • // Ici on determine le jour de la Vaccation
  • NomVaccation ()
  • {
  • Vaccation= NombreDeJours%8;
  • printf ("\\n\\n\\n ******************************\\n");
  • switch (Vaccation)
  • {
  • case 0: printf (" * Premiere descente de nuit *\\n");break;
  • case 1: printf (" * Premiere Journee *\\n");break;
  • case 2: printf (" * Deuxieme nuit *\\n");break;
  • case 3: printf (" * Deuxieme descente de nuit *\\n");break;
  • case 4: printf (" * Deuxieme Journee *\\n");break;
  • case 5: printf (" * Premier repos *\\n");break;
  • case 6: printf (" * Deuxieme repos *\\n");break;
  • case 7: printf (" * Premiere nuit *\\n");break;
  • default: printf (" * Erreur !!! *\\n");break;
  • }
  • printf (" ******************************\\n\\n\\n");
  • printf("\\n\\n\\tGrand Merci a http:////www.cppfrance.com");
  • printf("\\n\\tGrand Merci a http:////casteyde.christian.free.fr pour son exellent tutoriel !!!\\n\\n");
  • return Vaccation;
  • }
  • //////////////////////////////////////////////////////////////////
  • // Boucle d'attente
  • Attente ()
  • {
  • struct timeb TempsDepartAttente;
  • struct timeb TempsFinAttente;
  • cout << "Attente 3 petites secondes ..." << endl;
  • ftime(&TempsDepartAttente);
  • while (TempsFinAttente.time <= TempsDepartAttente.time + 3)
  • {ftime(&TempsFinAttente);}
  • return 0;
  • }
/* Ce programme me sert en quelque sorte d'emploi du temps,
En effet je ne travail pas comme tout le monde, c-a-d 5 jours ouvrables
+ 1 week-end, je bosse en cycle de 8 vaccations:
1° Vaccation----> 1° Nuit
2° Vaccation----> 1° Descente de nuit
3° Vaccation----> 1° Journee
4° Vaccation----> 2° Nuit
5° Vaccation----> 2° Descente de nuit
6° Vaccation----> 2° Journee
7° Vaccation----> 1° Repos
8° Vaccation----> 2° Repos
*/
#include <iostream.h>
#include <stdio.h>
#include <sys\\timeb.h>


/* Declaration des Variables */
int JourSaisie;
int MoisSaisie;
int AnneeSaisie;
int Fevrier;
int MaxJours;
int Annee2000 = 2000;
int EcartAnnees;
int AnneesBissextiles;
int EcartJoursAnnees;
int TotalJoursMois;
int NombreDeJours;
int Vaccation;
long i;

/* Declaration des Fonctions */
int ControlJour();
int AnneeBissextile ();
int Annees ();
int NombreAnneeBissextile ();
int NombreJoursAnnees ();
int NombresJourAnneeSaisie ();
int TotalJours ();
int NomVaccation ();
int Attente ();

main ()
	{
// On commence par la saisie de la Date
	printf(" Entrez une date au format 18/05/1976: ");
	scanf(" %d / %d / %d", &JourSaisie, &MoisSaisie, &AnneeSaisie);
	
// Execution des fonctions les unes après les autres

	
	AnneeBissextile ();

	Annees();

	NombreAnneeBissextile ();
	
	ControlJour();

	NombreJoursAnnees ();

	NombresJourAnneeSaisie ();
	
	TotalJours ();

	NomVaccation ();
	
	Attente ();

	return 0;
	}

ControlJour()
	{
	switch (MoisSaisie)
		{
	case 1: MaxJours = 31;break;
	case 2: MaxJours = Fevrier;break;
	case 3: MaxJours = 31;break;
	case 4: MaxJours = 30;break;
	case 5: MaxJours = 31;break;
	case 6: MaxJours = 30;break;
	case 7: MaxJours = 31;break;
	case 8: MaxJours = 31;break;
	case 9: MaxJours = 30;break;
	case 10: MaxJours = 31;break;
	case 11: MaxJours = 30;break;
	case 12: MaxJours = 31;break;
	default: printf("Vous vous etes plantes lors de la saisie du mois !!!\\n");break;
		}
	if (JourSaisie <1 || JourSaisie> MaxJours)
		printf ("\\n\\n ----> Erreur dans la saisie du Jour de la date !!!");
	return MaxJours;
	}


// Calcul le nombre d'annee par rapport à la Date de référence
// qui n'est autre que le 01/01/2000 qui est elle même 1 année 
// bissextile (d'ou le -1)

Annees ()
	{
	EcartAnnees= AnneeSaisie-Annee2000-1;
	return EcartAnnees;
	}
	
// Calcul du nombre d'annees bissextile entre l'annee saisie et 
// l'annee 2000
NombreAnneeBissextile ()
	{
	AnneesBissextiles= (EcartAnnees / 4);
	return AnneesBissextiles;
	}

// Ici on calcul le nombre de jour entre les annees
NombreJoursAnnees ()
	{
	EcartJoursAnnees= (AnneesBissextiles* 366) + ((EcartAnnees-AnneesBissextiles)*365);
	return EcartJoursAnnees;
	}
// La fonction suivante détermine si l'annee est bissextile
// si c'est le cas le mois de Fevrier vaudra 29 jours
// autrement il vaudra 28 jours
AnneeBissextile ()
	{
	if ((AnneeSaisie % 4 ) == 0)
		{Fevrier= 29;
		printf(" annee bissextille");}
	else
		{Fevrier= 28;}
	return Fevrier;
	}
// Là on détermine le nombre de jours entre le 1° du mois
// et le 01/01/2000
NombresJourAnneeSaisie ()
	{
	switch (MoisSaisie)
		{
	case 1: TotalJoursMois = 0;break;
	case 2: TotalJoursMois = 31;break;
	case 3: TotalJoursMois = 31+Fevrier;break;
	case 4: TotalJoursMois = 31+Fevrier+31;break;
	case 5: TotalJoursMois = 31+Fevrier+31+30;break;
	case 6: TotalJoursMois = 31+Fevrier+31+30+31;break;
	case 7: TotalJoursMois = 31+Fevrier+31+30+31+30;break;
	case 8: TotalJoursMois = 31+Fevrier+31+30+31+30+31;break;
	case 9: TotalJoursMois = 31+Fevrier+31+30+31+30+31+31;break;
	case 10: TotalJoursMois = 31+Fevrier+31+30+31+30+31+31+30;break;
	case 11: TotalJoursMois = 31+Fevrier+31+30+31+30+31+31+30+31;break;
	case 12: TotalJoursMois = 31+Fevrier+31+30+31+30+31+31+30+31+30;break;
	default: printf("Vous vous etes plantes lors de la saisie du mois !!!\\n");break;
		}
	return MoisSaisie;
	}

//Addition des Jours
TotalJours ()
	{
	NombreDeJours= TotalJoursMois+EcartJoursAnnees+JourSaisie;
	return NombreDeJours;
	}

// Ici on determine le jour de la Vaccation
NomVaccation ()
	{
	Vaccation= NombreDeJours%8;
	printf ("\\n\\n\\n     ******************************\\n");
	switch (Vaccation)
		{
	case 0: printf ("     * Premiere descente de nuit *\\n");break;
	case 1: printf ("     *     Premiere Journee      *\\n");break;
	case 2: printf ("     *       Deuxieme nuit       *\\n");break;
	case 3: printf ("     * Deuxieme descente de nuit *\\n");break;
	case 4: printf ("     *     Deuxieme Journee      *\\n");break;
	case 5: printf ("     *       Premier repos       *\\n");break;
	case 6: printf ("     *       Deuxieme repos      *\\n");break;
	case 7: printf ("     *       Premiere nuit       *\\n");break;
	default: printf ("     *        Erreur !!!         *\\n");break;
		}	
	printf ("     ******************************\\n\\n\\n");
	printf("\\n\\n\\tGrand Merci a http:////www.cppfrance.com");
	printf("\\n\\tGrand Merci a http:////casteyde.christian.free.fr  pour son exellent tutoriel !!!\\n\\n");
	return Vaccation;
	}

//////////////////////////////////////////////////////////////////
// Boucle d'attente
 Attente ()
{
	struct timeb TempsDepartAttente;
	struct timeb TempsFinAttente;
	cout << "Attente 3 petites secondes ..." << endl;
	ftime(&TempsDepartAttente);
	while (TempsFinAttente.time <= TempsDepartAttente.time + 3)
	{ftime(&TempsFinAttente);}
	return 0;
}

 Conclusion

J'ai ecrit une appli similaire  en JavaScript hébergé aussi par www.javascriptfr.com
Je tiens à remercier www.cppfrance.com notament xentor69

et pis Monsieur CASTEYDE Claude pour son exellent tutoriel
casteyde.christian.free.fr





 Sources du même auteur

Source avec une capture VACCATION (AVEC FONCTION) CONSOLERIE, REMIX GCC
Source avec Zip VACCATION-WIN32 VCPP6 (MERCI À XENTOR609)
Source avec Zip DATE EN BRETON (MODE CONSOLE,VCPP6)
Source avec Zip CHRONOMETRE AU MILLIEME DE SECONDES EN MODE CONSOLE VC++6
Source avec Zip NOMBRES PREMIERS AVEC CHRONO ET INCREMENTEUR INCORPORÉ

 Sources de la même categorie

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
Source avec Zip Source avec une capture AFFICHER ET DIRE L'HEURE (REPONSE FORUM) par ndubien
Source avec Zip Source avec une capture ARRÊT AUTOMATIQUE DE WINDOWS. par patarotalexandre

Commentaires et avis

Commentaire de highcobra le 17/09/2003 22:50:26

Attention, ta condition pour les années bissextiles et fausse. Une année est bissextile si elle est divisible par 4 et par 100 mais pas par 400...

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,530 sec (3)

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