# include <iostream>
using namespace std;

/*	Dimioyrgia imerominias me 
 *	synartiseis dimioyrgias kai synartiseis set kai get.
 * */
class Date
{
	private:
		int day,month,year;
		int days[12];
		//ayti i methodos tha gemisei ton pinaka days.
		void fillDays();
	public:
		Date();
		Date(int d,int m,int y);
		void	setDay(int d);
		int	getDay();
		void	setMonth(int m);
		int	getMonth();
		void	setYear(int y);
		int	getYear();
		void	readDate();
		void 	printDate();
		int isDisekto();
		void	nextDay();
		void	prevDay();
};

void	Date::prevDay()
{
	day=day-1;
	if(day==0)
	{
		month=month-1;
		if(month>0) 
			day=days[month-1];
		else
			day=days[11];
		if(month==0)
		{
			month=12;
			year=year-1;
		}
	}
}

void	Date::nextDay()
{
	day=day+1;
	if(day>days[month-1])
	{
		month=month+1;
		day=1;
		if(month==13)
		{
			year=year+1;
			month=1;
		}
	}
}

void	Date::fillDays()
{
	switch(month)
	{
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
				days[month-1]=31;
				break;
		
		case 4:
		case 6: 
		case 9:
		case 11:
				days[month-1]=30;
				break;
		default:
				if(isDisekto())
					days[month-1]=29;
				else
					days[month-1]=28;
				break;
				
	}
}

int Date::isDisekto()
{
	if((year%4==0 && year%100!=0) || 
	   (year%100==0 && year%400==0) )
		return 1;
	else 
		return 0;
}

Date::Date()
{
	readDate();
	fillDays();
}

Date::Date(int d,int m,int y)
{
	if(d>=1 && d<=31) 
		day=d; 
	else 
		day=1;
	if(m>=1 && m<=12)
		month=m;
	else
		month=1;
	if(y>=1)
		year=y;
	else
		year=2014;
	fillDays();
}

void	Date::setDay(int d)
{
	if(d>=1 && d<=31) day=d;
}

int	Date::getDay()
{
	return day;
}

void	Date::setMonth(int m)
{
	if(m>=1 && m<=12) month=m;
}

int	Date::getMonth()
{
	return month;
}

void	Date::setYear(int y)
{
	if(y>=1) year=y;
}

int	Date::getYear()
{
	return year;
}

void	Date::printDate()
{
	cout<<day<<"/"<<month<<"/"<<year<<endl;
}
void	Date::readDate()
{
	do{
	cout<<"Dose mera \n";
	cin>>day;
	}while(day<1 || day>31);
	
	do{
	cout<<"Dose mina \n";
	cin>>month;
	}while(month<1 || month>12);
	
	do{
	cout<<"Dose etos \n";
	cin>>year;
	}while(year<=0);
}

int main()
{
	Date date1;
	date1.printDate();
	date1.nextDay();
	date1.printDate();
	date1.prevDay();
	date1.printDate();
	return 0;
}
