Salut à tous.
Je débute en C++ et j'ai voulu faire un petit programme pour calculer le jour la semaine de notre naissance, mais il donne de mauvais résultats... Je ne comprends pas ou est le problème.
J'ai utilisé l'algorithme décrit ici : http://myriade.editions-bordas.fr/eleve/webfm_send/19
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 #include <iostream> #include <string> using namespace std; int main() { int annee, mois, jour; cout << "Quel est votre année de naissance ?" << endl; cin >> annee; cout << endl; cout << "Quel est votre mois de naissance ?" << endl; cin >> mois; cout << endl; cout << "Quel est votre jour de naissance ?" << endl; cin >> jour; cout << endl; int a (1901 - annee); int q (a/4); bool bissextile(0), n; if (annee % 4 == 0 && (annee % 100 != 0 || annee % 400 == 0)) bissextile = 1; if (mois == 1) n = 0; if (mois == 2) n = 31; if (bissextile == 0 && mois == 3) n = 28+31; if (bissextile == 0 && mois == 4) n = 31+28+31; if (bissextile == 0 && mois == 5) n = 30+31+28+31; if (bissextile == 0 && mois == 6) n = 31+30+31+28+31; if (bissextile == 0 && mois == 7) n = 30+31+30+31+28+31; if (bissextile == 0 && mois == 8) n = 31+30+31+30+31+28+31; if (bissextile == 0 && mois == 9) n = 31+31+30+31+30+31+28+31; if (bissextile == 0 && mois == 10) n = 30+31+31+30+31+30+31+28+31; if (bissextile == 0 && mois == 11) n = 31+30+31+31+30+31+30+31+28+31; if (bissextile == 0 && mois == 12) n = 30+31+30+31+31+30+31+30+31+28+31; if (bissextile == 1 && mois == 3) n = 29+31; if (bissextile == 1 && mois == 4) n = 31+29+31; if (bissextile == 1 && mois == 5) n = 30+31+29+31; if (bissextile == 1 && mois == 6) n = 31+30+31+29+31; if (bissextile == 1 && mois == 7) n = 30+31+30+31+29+31; if (bissextile == 1 && mois == 8) n = 31+30+31+30+31+29+31; if (bissextile == 1 && mois == 9) n = 31+31+30+31+30+31+29+31; if (bissextile == 1 && mois == 10) n = 30+31+31+30+31+30+31+29+31; if (bissextile == 1 && mois == 11) n = 31+30+31+31+30+31+30+31+29+31; if (bissextile == 1 && mois == 12) n = 30+31+30+31+31+30+31+30+31+29+31; int s(a + q + n + jour + 1); int r(s % 7); string resultat; if (r == 0) resultat = "dimanche"; if (r == 1) resultat = "lundi"; if (r == 2) resultat = "mardi"; if (r == 3) resultat = "mercredi"; if (r == 4) resultat = "jeundi"; if (r == 5) resultat = "vendredi"; if (r == 6) resultat = "samedi"; cout << "Vous êtes nés un " << resultat << " !" << endl; return 0; }
Partager