Calendrier perpétuel

Soyez le premier à donner votre avis sur cette source.

Snippet vu 20 487 fois - Téléchargée 28 fois

Contenu du snippet

Donne le jour correspondant à une date, depuis 1583 (première année où le calendrier actuel avait été mis en place).

Source / Exemple :


#include <iostream.h>
void main (void)
{
	char Tmois[12][10]={"Janvier","fevrier", "mars", "avril","mai","juin","juillet","aout","septembre","octobre","novembre","decembre"};
	char LibJour[7][9]={"samedi","dimanche","lundi","mardi","mercredi","jeudi","vendredi"};
	int NbJour[12]={31,28,31,30,31,30,31,31,30,31,30,31};
	int NumJour;
	int NumMois;
	int Annee;
	int Jref=1;
	int A=0;
	int Mref=0;
	int Aref=1583;
	cout<<"Entrez le jour\n";
	cin>>NumJour;
	NumJour--;
	cout<<"Entrez le mois\n";
	cin>>NumMois;
	NumMois--;
	cout<<"Entrez l'annee\n";
	cin>>Annee;
	while(Annee>Aref)
	{
		if(Aref%4==0)
		{
			NbJour[1]=29;
			A++;
			if(Aref%100==0)
			{
				NbJour[1]=28;
				A--;
				if(Aref%400==0)
				{
					NbJour[1]=29;
					A++;
				};
			};
		};
		Aref++;
		A++;
	};
	if (Annee<Aref)
	{
		A=A+1;
	};
	
	while(NumMois>Mref)
	{
		A=(NbJour[Mref]+A)%7;
		Mref++;
	};
	if (Mref>1)
	{
		A=A+6;
	};

		A=(NumJour+A)%7;
		cout<<"C'est un "<<LibJour[A]<<" "<<NumJour+1<<" "<<Tmois[Mref]<<" "<<Aref;
		cin>>Jref;
};

Conclusion :


Le programme n'étant pas sécurisé, il est fortement déconseillé de rentrer une date qui n'existe pas !!!

A voir également

Ajouter un commentaire

Commentaires

blassiou083
Messages postés
8
Date d'inscription
jeudi 17 novembre 2005
Statut
Membre
Dernière intervention
3 mars 2009

Je tiens aussi à préciser que je me suis mis au c++ qu'en septembre où je suis entré en BTS info (donc je ne connais pas tout, pour ne pas dire rien pour le moment) et qu'avant, le seul langage que j'avais pratiqué était le TI basic(donc rien à voir, ou presque). Je suis donc pour qu'on critique, me dise ce qui serait mieux, etc.
vecchio56
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
J'ai entré une date qui n'existait pas et mon aoridnateur a explosé, mais bon tu nous avait prévenu que ton prog n'était pas sécurisé.
Pour les string c'est bien sur plus mauvais (allocation des chaines dans le tas, plus d'autre champs comme size qui ne serviront jamais)
le_duche
Messages postés
159
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
26 février 2009

C'est vrai que c'est du chipotage... mais bon... je suis un mathématicien moi, il faut m'excuser ! :p
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
string n'a pas que la longueur, ces 4 octets ne sont rien en rapport de l'alloc mémoire nécessaire, ça oui que ça amuse bien le processeur. On ajoutera donc donc le pointeur ET une fragmentation de l'espace mémoire du processus, même si ici est faible. Le tableau de char ne nécessite par contre rien du tout, quelques octets dans registre data et adresse est connue à la compilation.
Cyberboy2054
Messages postés
173
Date d'inscription
jeudi 20 décembre 2001
Statut
Membre
Dernière intervention
22 août 2008

Ne serait ce que pour stocker la taille de la chaine dans la classe, ca fait 4 octets de plus.
Mais bon, on chippote, les ordis d'aujourd'hui sont largement capables de s'occuper de quelques malheureux octets dans ce cas particulier.
Il ne faut par contre pas confondre 'mieux' et 'plus simple'.
la class std::string permet de gérer des chaines de caracteres facilement, encore faut il avoir besoin de les traiter. Ici on a juste besoin de stocker leur contenu, donc pas besoin de passer par elles, autant passer par le type presque de base qu'est la chaine de caracteres, même si elle est terminée par un caractère nul en plus ...

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.