// NOM et PRENOM =

#include <iostream>
#include <iomanip>
#include <cmath>
#include <stdlib.h>

// Opérateurs :
//  +  -  *  /      %  = modulo

using namespace std;

void test01() {
//=============
// Calcul du jour de la semaine d'une date donnée.
int nJour = 1; // le jour
int nMois = 1; // le mois
int nAnnee = 2000;  // l'année
string strJour = "???"; // le jour de la semaine correspondant

cout << "Indique le jour de la semaine d'une date donnée." << endl;
cout << "Entrez la date sous la forme jour mois année, avec des espaces entre deux." << endl;
cout << "Exemple : 25 11 2014." << endl;
cout << "Date = ";
cin >> nJour >> nMois >> nAnnee;
cout << nJour << "  " << nMois << "  " << nAnnee << endl;  // Tests

// Calcule le nombre correspondant au mois.
int nNumMois = 0; // pour mémoriser le nombre correspondant au mois
if (nMois ==  2) nNumMois = 3; // pour février
if (nMois ==  3) nNumMois = 3; // pour mars
if (nMois ==  4) nNumMois = 6; // pour avril
if (nMois ==  5) nNumMois = 1; // pour mai
if (nMois ==  6) nNumMois = 4; // pour juin
if (nMois ==  7) nNumMois = 6; // pour juillet
if (nMois ==  8) nNumMois = 2; // pour aout
if (nMois ==  9) nNumMois = 5; // pour septembre
if (nMois == 10) nNumMois = 0; // pour octobre
if (nMois == 11) nNumMois = 3; // pour novembre
if (nMois == 12) nNumMois = 5; // pour décembre
cout << nMois << "  " << nNumMois << endl; // Pour des tests.

// Calcule le nombre correspondant à l'année.
int nAn = nAnnee % 100;  // nAn = reste de la division par 100 de nAnnee
int nNumAn = nAn + (nAn / 4); // pour mémoriser le nombre correspondant à l'année
cout << nAn << "  " << nNumAn << endl; // Pour des tests.

// Traite le siècle.
if ((nAnnee >= 2000) && (nAnnee <= 2099)) nNumAn = nNumAn - 1;

// Traite le cas des années bissectiles.
if ( ((nAnnee % 4 == 0) && (nAnnee % 100 != 0))  || (nAnnee % 400 == 0) ) {
   if (nMois <= 2) nNumAn = nNumAn - 1;
   }

// Calcule finale du jour de la semaine cherché.
int nNumJour = (7 + nJour + nNumMois + nNumAn) % 7;  // nJour = reste de la division par 7 de ...
cout << nJour << "  " << nNumMois << "  " << nNumAn << "  " << nNumJour << endl; // pour des tests
if (nNumJour == 0) strJour = "dimanche";
if (nNumJour == 1) strJour = "lundi";
if (nNumJour == 2) strJour = "mardi";
if (nNumJour == 3) strJour = "mercredi";
if (nNumJour == 4) strJour = "jeudi";
if (nNumJour == 5) strJour = "vendredi";
if (nNumJour == 6) strJour = "samedi";

cout << "Le jour correspondant est un " << strJour << endl;
} // test01

int main() {
//==========
test01();
}
