码迷,mamicode.com
首页 > 其他好文 > 详细

使用友元类处理日期和时间

时间:2014-06-08 18:17:22      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   a   

#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;
}


执行结果:

bubuko.com,布布扣

使用友元类处理日期和时间,布布扣,bubuko.com

使用友元类处理日期和时间

标签:c   style   class   blog   code   a   

原文地址:http://blog.csdn.net/u010105970/article/details/28888385

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!