Esercizio no.10:soluzione
#include <iostream>
using namespace std;
bool bisestile(int anno) {
return (anno % 400 == 0) || (anno % 4 == 0 && anno % 100 != 0);
}
int main() {
int giorno, mese, anno;
cout << “Inserisci giorno: “;
cin >> giorno;
cout << “Inserisci mese: “;
cin >> mese;
cout << “Inserisci anno: “;
cin >> anno;
bool valida = true;
int giorni_massimi;
if (anno <= 0) {
valida = false;
} else if (mese < 1 || mese > 12) {
valida = false;
} else {
switch (mese) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
giorni_massimi = 31; break;
case 4: case 6: case 9: case 11:
giorni_massimi = 30; break;
case 2:
if (bisestile(anno))
giorni_massimi = 29;
else
giorni_massimi = 28;
break;
}
if (giorno < 1 || giorno > giorni_massimi)
valida = false;
}
if (valida)
cout << “La data inserita e’ valida.” << endl;
else
cout << “La data inserita NON e’ valida.” << endl;
return 0;
}