标签:
/*Copyright (c)2016,烟台大学计算机与控制工程学院 02.*All rights reserved. 03.*文件名称:main.cpp 04.*作 者:田志伟 05.*完成日期:2016年5月9日 06.*版 本 号:v1.0 07.* 08.*问题描述: 友元时间类 09. 输入描述: 10.*输出描述: 年月日小时分钟秒 */ #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; }; Time::Time(int a,int b,int c) { hour=a; minute=b; sec=c; } Date::Date(int x,int y,int z) { month=x; day=y; year=z; }; void Time::add_a_second(Date&d1) { sec=sec+1; } void Time::display(Date&d1) { if(sec>=60) { minute=sec/60+minute; sec=sec%60; } if(minute>=60) { hour=minute/60+hour; minute=minute%60; } if(hour>=24) { d1.day=d1.day+hour/24; hour=hour%24; } if(d1.day>31) { d1.month=d1.day/30+d1.month; d1.day=d1.day%30; } if(d1.month>12) { d1.year=d1.month/12+d1.year; d1.month=d1.month%12; } cout<<d1.month<<"/"<<d1.day<<"/"<<d1.year<<" "<<hour<<":"<<minute<<":"<<sec<<endl; } int main( ) { Time t1(23,59,32); Date d1(2,28,2013); //测试时,再试试Date d1(2,28,2013)会如何 for(int i=0; i<=100; i++) { t1.add_a_second(d1); t1.display(d1); } return 0; }
程序运行:
标签:
原文地址:http://blog.csdn.net/summer_permenent/article/details/51366664