首页 > 代码库 > 使用友元类处理日期和时间
使用友元类处理日期和时间
#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; }
执行结果:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。