cs_badramus
Messages postés15Date d'inscriptionsamedi 6 mai 2006StatutMembreDernière intervention15 mai 2006
-
9 mai 2006 à 13:13
cs_magma
Messages postés198Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention18 mars 2011
-
10 mai 2006 à 14:58
bonjour tout le monde j'aimerais que vous m'aidez pour un projet à rendre le 15 mai
le projet presenté ci dessous
1 pour une date donnée (jj/mm/aaaa) determiner le jour (lundi, mardi,... , dimanche)
2 pour une année donnée determiner la date de la fete de paques
3 pour un nombre de jour donnée (>0) determiner la date (jour/mois/année).on prend comme point de départ le 1er janvier 1960.
je compte sur la communauté merci
cs_badramus
Messages postés15Date d'inscriptionsamedi 6 mai 2006StatutMembreDernière intervention15 mai 2006 10 mai 2006 à 11:09
Bonjour YOYO
voici ce que je voudrai que fasse mon programme
1 pour une date donnée (jj/mm/aaaa) determiner le jour (lundi, mardi,... , dimanche)
2 pour une année donnée determiner la date de la fete de paques
3 pour un nombre de jour donnée (>0) determiner la date (jour/mois/année).on prend comme point de départ le 1er janvier 1960
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 10 mai 2006 à 11:13
Mais je sais que c'est ce que tu veux faire. Ca sert à rien de faire 50000 copier-coller.
Ce que je veux savoir c'est ce qu'il ne fonctionne pas ? (compilation, mauvais résultat affiché, plantage du programme en cours d'exécution,...)
YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
//_____________________________________________________________________________
//
// Retourne 1 si la date est valide, sinon 0
//_____________________________________________________________________________
//
int DateValide(int jour, int mois, int annee)
{
int nj[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
//_____________________________________________________________________________
//
// Retourne le jour du 1er Janvier de l'annee [0 == Dimanche ... 6 == Samedi]
//_____________________________________________________________________________
//
int PremierJanvier(int annee)
{
return ((annee / 100) * 5 +
(annee / 100) / 4 +
(annee % 100) +
(annee % 100) / 4 +
(Bissextile(annee) ? 6 : 0)) % 7;
}
//_____________________________________________________________________________
//
// Retourne le numero du jour dans l'annee (Quantieme) [1 ... 366]
//_____________________________________________________________________________
//
int Quantieme(int jour, int mois, int annee)
{
if(mois == 1)
return jour;
//_____________________________________________________________________________
//
// Retourne le jour de la semaine [0 == Dimanche ... 6 == Samedi]
//_____________________________________________________________________________
//
int JourSemaine(int jour, int mois, int annee)
{
return (PremierJanvier(annee) + Quantieme(jour, mois, annee) - 1) % 7;
}
//_____________________________________________________________________________
//
// Retourne le quantieme du dimanche de Paques
//_____________________________________________________________________________
//
int Paques(int annee)
{
int a = annee % 19;
int b = annee /100;
int c = annee % 100;
int d = b / 4;
int e = b % 4;
int f = (b + 8) / 25;
int g = (b + 1 - f) / 3;
int h = (15 + 19 * a + b - d - g) % 30;
int i = (32 + 2 * (e + (c / 4)) - h - (c % 4)) % 7;
int j = (a + 11 * h + 22 * i) / 451;
return Quantieme(21, 3, annee) + h + i - 7 * j + 1;
}
//_____________________________________________________________________________
//
// Conversion d'une date en jour julien
//_____________________________________________________________________________
//
long DateJourJulien(int jour, int mois, int annee)
{
return (long)((1461 * (annee + 4800 + (mois - 14) / 12)) / 4 +
(367 * (mois - 2 - 12 * ((mois - 14) / 12))) / 12 -
(3 * ((annee + 4900 + (mois - 14) / 12) / 100)) / 4 +
jour - 32075);
}
//_____________________________________________________________________________
//
// Conversion d'un jour julien en date
//_____________________________________________________________________________
//
int JourJulienDate(long jourjulien, int *jour, int *mois, int *annee)
{
long a, b, c, d;
a = jourjulien + 68569;
b = ( 4 * a ) / 146097;
a = a - ( 146097 * b + 3 ) / 4;
c = ( 4000 * ( a + 1 ) ) / 1461001;
a = a - ( 1461 * c ) / 4 + 31;
d = ( 80 * a ) / 2447;
*jour = (int)(a - ( 2447 * d ) / 80);
*mois = (int)(d + 2 - ( 12 * (d / 11) ));
*annee = (int)(100 * ( b - 49 ) + (d / 11) + c);
return 1;
}
//_____________________________________________________________________________
//
// Conversion d'un quantieme en jour et mois
//_____________________________________________________________________________
//
int QuantiemeDate(int quantieme, int annee, int *jour, int *mois)
{
long jj = DateJourJulien(1, 1, annee) + (long)quantieme - 1L;
return JourJulienDate(jj, jour, mois, &annee);
}
printf("\nEntrez une date (Du 01/01/%d au 31/12/%d)", ANNEE_MIN, ANNEE_MAX);
printf("\n[JJ/MM/AAAA]: ");
scanf("%d/%d/%d", &j, &m, &a);
if(!DateValide(j, m, a))
{
printf("\nLa date %02d/%02d/%d n'est pas une date valide !\n", j, m, a);
printf("\nTapez une touche pour quitter..."); getch(); return 1;
}
printf("\nLe %02d/%02d/%d est un %s", j, m, a, tj[JourSemaine(j, m, a)]);
printf("\nL'annee %d %s bissextile", a, Bissextile(a) ? "est" : "n'est pas");
QuantiemeDate(Paques(a), a, &j, &m);
printf("\nPaques pour l'annee %d est le %02d/%02d", a, j, m);
QuantiemeDate(Paques(a) + 39, a, &j, &m);
printf("\nL'Ascension pour l'annee %d est le %02d/%02d", a, j, m);
QuantiemeDate(Paques(a) + 49, a, &j, &m);
printf("\nLa pentecote pour l'annee %d est le %02d/%02d\n", a, j, m);
printf("\nEntrez un nombre: ");
scanf("%ld", &n);
if(!JourJulienDate(DateJourJulien(1, 1, 1960) + n, &j, &m, &a))
{
printf("\nNombre trop grand !\n");
printf("\nTapez une touche pour quitter..."); getch(); return 1;
}
printf("\nLe 01/01/1960 plus %ld jour%s", n, n > 1 ? "s " : " ");
printf("correspond au %s %02d/%02d/%d\n", tj[JourSemaine(j, m, a)], j, m, a);
printf("\nTapez une touche pour quitter..."); getch(); return 0;
}
// Fin