使用友元类处理日期和时间
2014-06-06 15:34
155 查看
#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; }
执行结果:
相关文章推荐
- 处理日期和时间数据--单独使用日期和时间
- 批处理、shell 使用日期时间作为文件名的方法
- 170804、使用Joda-Time优雅的处理日期时间
- Java 8中对日期和时间的处理(使用API处理)
- 处理日期和时间数据--单独使用日期和时间
- bat批处理日期时间格式设置使用
- JDK1.7和JDK1.8中日期时间使用和处理的不同
- 时间处理工具类,和使用字符串或者日期处理需要注意的问题
- SAP 使用较频繁的日期时间处理函数总结
- 45.Oracle数据库SQL开发之 日期和时间的存储与处理——使用时间戳
- Qt编程19:Qt时间日期的处理(QTime、QDateTime的使用比较简单)
- springboot读取自己定义的配置文件的方式以及使用joda_time来处理时间日期
- 使用Date类处理日期时间
- SAP 使用较频繁的日期时间处理函数总结
- 40.Oracle数据库SQL开发之 日期和时间的存储与处理——使用TO_CHAR和TO_DATE
- 43.Oracle数据库SQL开发之 日期和时间的存储与处理——使用时间值函数
- ASP.NET MVC下使用AngularJs语言(九):日期时间处理与显示
- 使用DateTimeOffset 对xml中的日期时间格式时区进行处理
- 日期及时间处理包 Carbon 在 Laravel 中的简单使用
- Thinking in Java---使用Java处理日期和时间