/* * File: main.cpp * Author: maurizio * * Created on 14 febbraio 2010, 17.56 */ #include #include using namespace std; /* * */ // un anno è bisestile se è divisibile per 4 ma non per 100, fatta eccezione per gli anni divisibili per 400 che sono bisestili bool annoBisestile(int a) { if (a % 4 != 0) return false; else if (a % 100 != 0) return true; else if (a % 400 != 0) return false; else return true; // oppure in maniera più compatta // return (a % 4==0 && a % 100!=0) || (a % 400==0); } int giorniDelMese(int m, int a) { if (m == 4 || m == 6 || m == 9 || m == 11) return 30; else if (m == 2) if (annoBisestile(a)) return 29; else return 28; else return 31; } bool verificaData(int g, int m, int a) { return (a >= 1900 && a<=2099) && (m >= 1 && m <= 12) && (g >=1 && g <= giorniDelMese(m,a)); } int main(int argc, char** argv) { int g=30; int m=2; int a=2016; bool b1 = annoBisestile(a); bool b2 = verificaData(g,m,a); cout << a << " è un anno bisestile? " << b1 << endl; cout << "La data è valida? " << b2 << endl; return (EXIT_SUCCESS); }