Trouver une date a partir de son numero et vice versa

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 330 fois - Téléchargée 31 fois

Contenu du snippet

Ce petit programme donne le nombre de jour passés depuis le 1er janvier jusqu'à la date entrée, et donne la date a partir de son numero.

Compilé avec DEV-C++ 4

Y'a peut etre des erreurs j'ai pas relu a fond...

Source / Exemple :


#include <stdio.h>

int ffevrier(int annee){
if(annee%4) return 29;
else return 28;
}

int aannee(int annee){
if(ffevrier(annee)==29) return 366;
else return 365;
}

int trouvdate(){
int annee, jour, i=1;
int mois [] = {0,31,0,31,30,31,30,31,31,30,31,30,31};

printf("En quelle année?\n");
scanf("%i",&annee);

printf("entrez le n° du jour\n");
scanf("%i",&jour);

while(jour>aannee(annee)){
printf("chiffre trop grand\n");
printf("entrez le n° du jour\n");
scanf("%i",&jour);
}
mois[2]=ffevrier(annee);

while(jour>31)
jour=jour-mois[i++];

printf("la date est: %i /%i /%i ",jour, i, annee);

getchar();
return 0;
}

int trouvnum(){

int annee, jour, moi, i,num=0;
int mois [] = {0,31,0,31,30,31,30,31,31,30,31,30,31};

printf("entrez le jour\n");
scanf("%i",&jour);

printf("entrez le mois\n");
scanf("%i",&moi);

printf("En quelle année?\n");
scanf("%i",&annee);

mois[2]=ffevrier(annee);

for(i=1;i<(moi);i++)
num=num+mois[i];
num=jour+num;
printf("c'est le jour numero: %i",num);

getchar();
return 0;
}

int main()
{
int choix;
printf("Pour trouver une date à partir de son numero, taper 1\n");
printf("Pour trouver le numero du jour à partir de sa date, taper 2\n");
printf("pour quitter, taper 3\n");
scanf("%i",&choix);
if(!(choix-1)) trouvdate();
else if(!(choix-2)) trouvnum();
else printf("Faut savoir ce que tu veux!!\n");

getchar();
return 0;
}

A voir également

Ajouter un commentaire

Commentaires

BruNews
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
13 -
RAPPEL:
bissextile si divisible par 4 mais si divisible par 100 doit l'etre par 400.
2000 est bissextile, 1700, 1800 et 1900 ne l'ont pas été.

bLeapYear ((dwYear & 3) 0) && ((dwYear % 100) != 0 || (dwYear % 400) == 0);
garslouche
Messages postés
584
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
29 mai 2015
-
Et en ce qui concerne la prog c'est inutile de déclarer deux fois le nombre de jours par mois.

Tu ferais mieux de faire un varible globale (et contante) pour ton int mois[]

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.