#include <iostream>
using namespace std;
struct time {
unsigned int year;
unsigned int month;
unsigned int day;
unsigned int hour;
unsigned int min;
unsigned int sec;
}nowtime;
int main(void)//void main的规范写法
{
cout << "please input year: " << endl;
cin >>nowtime.year;
cout << "please input month: " << endl;
while(1){
cin >>nowtime.month;
if(nowtime.month>12||nowtime.month<1)
cout<<"请重新输入正确的月份!"<<endl;
else break;
}
cout << "please input day: " << endl;
while(1){
cin >>nowtime.day;//重要部分
if((nowtime.year%400==0||(nowtime.year%4==0 && nowtime.year%100!=0)) && (nowtime.month==2&&(nowtime.day>29||nowtime.day<1)))//闰年
cout<<"请重新输入正确的天数!"<<endl;
else if((nowtime.year%400!=0||(nowtime.year%4!=0 && nowtime.year%100==0)) && (nowtime.month==2&&(nowtime.day>28||nowtime.day<1)))//前半段实现非闰年
cout<<"请重新输入正确的天数!"<<endl;
else break;
}
cout << "please input hour: " << endl;
while(1){
cin >>nowtime.hour;
if(nowtime.hour>24||nowtime.hour<0)
cout<<"请重新输入正确的小时!"<<endl;
else break;
}
cout << "please input min: " << endl;
while(1){
cin >>nowtime.min;
if(nowtime.min>60||nowtime.min<0)
cout<<"请重新输入正确的时分!"<<endl;
else break;
}
cout << "please input sec: " << endl;
while(1){
cin >>nowtime.sec;
if(nowtime.sec>60||nowtime.sec<1)
cout<<"请重新输入正确的秒!"<<endl;
else break;
}
cout<<"The bjtime is:"<<nowtime.year<<"/"<<nowtime.month<<"/"<<nowtime.day;
cout<<" "<<nowtime.hour<<":"<<nowtime.min<<":"<<nowtime.sec<<endl;
}
闰年判断是if(nowtime.year%400==0||(nowtime.year%4==0 && nowtime.year%100!=0)
那么非闰年应该是 if(nowtime.year %400 != 0 && (nowtime.year % 4 != 0 || nowtime.year %100 == 0))