急!定义类Time和Date,实现自增和自减运算符的重载
题目 生成时间类Time,成员包含私有数据成员hour、minute、second,分别表示当前时刻的小时、分钟和秒,重载“++”、“--”为Time类的成员函数,分别表示当前时刻推后和提前一个小时,时间的表示采用24小时制;生成日期类Date,包含私有数据成员year、month、day,分别表示年、月和日;定义disp()函数,用来显示日期和时间。实例化类Time与类Date的对象各一个,调用disp()函数显示当前的日期和时间;利用所重载的运算符对类Time的对象进行运算,并分别显示出运算后的日期和时间。我的代码:
#include<iostream>
using namespace std;
class Date;
class Time
{
public:
Time(){ hour = 0; min = 0; sec = 0;}
Time(int h,int m, int s) {hour = h; min = m; sec = s;}
Time operator++();
Time operator--();
void display(Date& d);
friend void deal();
private:
int hour;
int min;
int sec;
};
class Date
{
public:
//friend class Time友元类
friend void Time::display(Date &d);
friend Time Time::operator++();
friend Time Time::operator--();
Date() {year = 0; mon = 0;day=0 ;}
Date(int y, int m, int d){ year = y; mon = m; day = d;}
private:
int year;
int mon;
int day;
};
Time Time::operator++()
{//先判断hour
if (++hour >= 24)
{
hour -= 24;
++day;
}
return *this;
//判断day ,month,year等
//if(day>)
}
Time Time::operator--()
{
if (--hour < 0)
{
hour += 24;
--day;
}
return *this;
}
void Time::display(Date& d)
{
cout << d.year << " " << d.mon << " " << d.day << endl;
cout<< hour << ":" << min << ":" << sec << endl;
}
int main()
{
Date d1(2015, 5, 10);
Time t1(14,20,23);
t1.display(d1);
--t1;
t1.display(d1);
++t1;
t1.display(d1);
return 0;
}
问题是++day是错误的,而且我是在未考虑day的天数,月数,闰年等等;
社帮我看看怎么改,至少让day的增加减少没出错,然后再考虑其他情况