cần hàm nhập ngày, tháng, năm đơn giản hơn cái này!!!

đây là hàm nhập của em, anh chị nào có cách đỡ cực hơn một chút thì chỉ em, chứ khi gõ code mà cứ gõ thế này thì chết:
khai báo private của lớp DATE có 3 thành phần kiểu int là day, month, year; sau đây là hàm nhập:


void DATE :: input()
{
	cout<<"enter year:	";
	do
	{
		cin>>year;
		if(year < 0)
			cout<<"error! annex year, plesed!:	";
		else
		{
			cout<<"enter month:	  ";
			do
			{
				cin>>month;
				if(month < 1 || month > 12)
					cout<<"error! annex month, plesed!:	";
				else
				{
					cout<<"enter day:	";
					if(month == 4 || month == 6 || month == 9 || month == 11)
						do
						{
							cin>>day;
								if(day < 1 || day >30)
									cout<<"error! annex day, plesed!:	";
						}while(day < 1 || day >30);
					else
						if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month ==12)
							do
							{
								cin>>day;
								if(day < 1 || day > 31)
									cout<<"error! annex day, plesed!:	";
							}while(day < 1 || day > 31);
						else
							if(year % 4 == 0 && year % 100 != 0)
								do
								{
									cin>>day;
									if(day < 1 || day > 28)
										cout<<"error! annex day, plesed!:	";
								}while(day < 1 || day > 28);
							else
								do
								{
									cin>>day;
									if(day < 1 || day > 29)
										cout<<"error! annex day, plesed!:	";
								}while(day < 1 || day > 29);
				}
			}while(month < 1 || month > 12);
		}
	}while(year <0);
}

Bạn nên viết 1 hàm kiểm tra tính hợp lệ của ngày tháng năm riêng, như thế hàm input sẽ dễ nhìn hơn

kiểm tra năm nhuận

int Date::Check_Year() const
{
	return((year%4==0 && year%100!=0) || year%400==0); 
}

kiểm tra ngày nhập vào

int Date::Check_Date() const
{
	if(year <1 || month<1 || month>12 || day<1)
		return 0;
	else
	{
		switch (month)
		{
		case 1: case 3: case 5: case 7: case 8: case 10: case 12:
			if(day>31)
				return 0;
			else
				return 1;
			break;
		case 4: case 6: case 9: case 11:
			if(day>30)
				return 0;
			else
				return 1;
			break;
		case 2:
			if(Check_Year())
			{
				if(day>29)
					return 0;
			}
			else
				if(day>28)
					return 0;
			break;
		}
	}
}

hàm nhập:

void Date::Input_Date()
{
	cout<<"	 Please input date: ";
	cin>>day;
	cout<<"	 Please input month: ";
	cin>>month;
	cout<<"	 Please input yeah: ";
	cin>>year;
}

trong main()

	Date D1;
	do{
		cout<<"Please input infomation of Date D1:"<<endl<<endl;
		D1.Input_Date();
		if(D1.Check_Date()==0)
			cout<<"Date D1 don't exist! please try input again."<<endl;
	}while(D1.Check_Date()==0);

xúc tích nhất rồi đó