/*	Да се напише програма, в която потребителя въвежда
 *	година, дата и месец (като числа).
 *	Трябва въведената дата да е валидна, като
 *	валидността ѝ се осигури с контрол на входа.
 */
#include <iostream>
using namespace std;

int main() {

	int year, month, day;
	
	do {
		cout << "Input year (>0): ";
		cin >> year;
	} while(year < 1);

	// Определяме дали годината е високосна.
	bool leapYear = (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0);
	leapYear ? cout << "It's a leap year!" : cout << "It's a common year!";
	cout << endl;

	do {
		cout << "Input month (1-12): ";
		cin >> month;
	} while(month < 1 || month > 12);
	
	// Определяме броя на дните.
	int dayLimit = 0;
	switch(month) {
		case 2:
			// leapYear се оценява на 1 или 0.
			dayLimit = 28 + leapYear;
			break;
		case 4:
		case 6:
		case 9:
		case 11:
			dayLimit = 30;
			break;
		default:
			dayLimit = 31;
	}

	do {
		cout << "Input the day (1-" << dayLimit << "): ";
		cin >> day;
	} while(day < 1 || day > dayLimit);
	
	cout << "Your input: " << day << "." << month << "." << year << endl;

	return 0;
}
