#include <iostream>
using namespace std;
class Date; //对Date类的提前引用声明
class Time
{
public:
Time(int,int,int);
void add_a_second(Date &); //增加1秒,1秒后可能会到了下一天,乃到下一月、下一年
void display(Date &); //显示时间,格式:月/日/年 时:分:秒
private:
int hour;
int minute;
int sec;
};
class Date//日期类
{
public:
Date(int,int,int);
friend class Time;//Time为Date的友元类
private:
int month;
int day;
int year;
};
void main( )
{
Time t1(23,59,32);
Date d1(12,29,2012);
for(int i=0; i<=80; i++)
{
t1.add_a_second(d1);
t1.display(d1);
}
system("pause");
}
//初始化时间
Time::Time(int h, int m, int s)
{
hour = h;
minute = m;
sec = s;
}
//初始化日期
Date::Date(int m, int d, int y)
{
month = m;
day = d;
year = y;
}
void Time::add_a_second(Date &d)//增加1秒,1秒后可能会到了下一天,乃到下一月、下一年
{
sec++;//增加1秒
if(sec>59)//当超过59秒后
{
sec = sec % 60;
minute++;//增加1分钟
}
if(minute>59)//当超过59分钟后
{
minute = minute % 60;
hour++;//增加1小时
}
if(hour>23)//当超过23小时后
{
hour = hour % 24;
d.day++;//增加1天
}
if(d.day>30)//当超过30天后
{
d.day = d.day % 30;
d.month++;//增加1个月
}
if(d.month>12)//当超过12个月后
{
d.month = d.month % 12;
d.year++;//增加1年
}
}
//显示日期和时间
void Time::display(Date &d)//显示时间,格式:月/日/年 时:分:秒
{
cout<<d.year<<'/'<<d.month<<'/'<<d.day<<" "<<hour<<':'<<minute<<':'<<sec<<endl;
}
执行结果: