C++怎样给时间结构体限定输入数值

以下面的代码为基础 求输入年月日分秒是合法的 比如如果输入2018.2.30.67.69.69就显示输入数值不合法
还要考虑闰年的情况 搜索了很多改了很多次还是多多少少有漏洞 希望大家帮帮忙!!谢谢

#include
using namespace std;
struct MyTimeStruct
{
unsigned int year;
unsigned int month;
unsigned int day;

unsigned int hour;
unsigned int min;
unsigned int sec;

};
int main()
{
MyTimeStruct myTime = { 2018,3,6,17,0,0 };
cout << "please input year:" << endl;
cin >> myTime.year;

cout << "please input month:" << endl;
cin >> myTime.month;

cout << "please input day:" << endl;
cin >> myTime.day;

cout << "please input hour:" << endl;
cin >> myTime.hour;

cout << "please input min:" << endl;
cin >> myTime.min;

cout << "please input sec:" << endl;
cin >> myTime.sec;

cout << "the time is set to:"
    << myTime.year << "/"
    << myTime.month << "/"
    << myTime.day << " "
    << myTime.hour << ":"
    << myTime.min << ":"
    << myTime.sec <<  endl;
return 0;

}

多用几个条件结构 先判断年是否闰年 再判断月是否超过12 在判断日是否超过28 29 30 31 然后慢慢判断时分秒