任务三扩展(升级版)

来源:互联网 发布:windows的鼠标样式 编辑:程序博客网 时间:2024/06/05 06:09
#include<iostream>using namespace std;class DateTime{public:void set_datetime();void show_datetime();private:bool judge_year(int);bool is_date(int, int, int, int, int, int);int hour;int minute;int sec;int day;int month;int year;};int main(){DateTime t1;DateTime &t2 = t1;t1.set_datetime();t2.show_datetime();return 0;}void DateTime :: set_datetime(){char c1, c2, c3, c4,c5;cout << "请输入日期、时间(格式 yy.mm.dd.hh:mm:dd)";while(1){cin >> year >> c1 >> month >> c2 >> day >> c3 >> hour >> c4 >> minute >> c5 >> sec;        //cin >> year >> month >> day >> hour >> minute >> sec;if(c1 != '.' || c2 != '.' || c3 != '.' || c4 != ':' || c5 != ':')cout << "格式不正确,请重新输入" << endl;else if(!is_date(year, month, day, hour, minute, sec))cout << "日期非法,请重新输入" << endl;else break;}}void DateTime :: show_datetime(){cout << year << "年" << month << "月" << day << "日" << hour << "点" << minute << "分" << sec << "秒" << endl;}bool DateTime :: is_date(int y, int m, int d, int h, int mi, int s){if(y < 1 || m < 1 || m > 12 || d < 1 || d > 31 || h < 0 || h > 24 || mi < 0 || mi > 60 || s < 0 || s > 60){return false;}else if(m == 2){if(judge_year(y)){if(d > 29)return false;}    else{if(d > 28)return false;}}else if(m == 4 || m == 6 || m == 9 || m == 11){if(d > 30)return false;}return true;}//定义判断是否为闰年的函数   bool DateTime :: judge_year(int year)  {   bool leap;   if(year % 4 == 0)   {    if(year % 100 == 0)    {     if(year % 400 == 0)      leap = true;     else leap = false;    }    else     leap = true;   }   else    leap = false;   return leap;  }  

 
原创粉丝点击