第三周 任务三扩展
//定义一个日期类
#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 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;
cout << "请输入日期(格式 yy . mm . dd)";
while(1)
{
cin >> year >> c1 >> month >> c2 >> day;
if(c1 != '.' || c2 != '.')
cout << "格式不正确,请重新输入" << endl;
else if(!is_date(year, month, day))
cout << "日期非法,请重新输入" << endl;
else
break;
}
}
void DateTime :: show_datetime()
{
cout << year << "." << month << "." << day << endl;
}
bool DateTime :: is_date(int y, int m, int d)
{
if(y < 1 || m < 1 || m > 12 || d < 1 || d > 31)
{
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;
}
还没有评论,来说两句吧...