7週目プロジェクト2-友元類

3134 ワード

/*
 *Copyright(c) 2016,              
 *All rights reserved.
 *    :my.cpp
 *      :   
 *    :2016 4 20 
 *     :v1.0
 *
 *    :1.   
           2.    ,          。        ,          2     。

 *    :
 *    :
 */

#include<iostream>
using namespace std;
class Date;
class Time
{
public:
    Time(int x,int y ,int z):hour(x),minute(y),sec(z){};
    void add_a_second(Date &);//  1 ,1                  ;
    void display(Date &);//    ,  : / /   : : 
private:
     int hour;
     int minute;
     int sec;
};
class Date
{
public:
    Date(int x, int y ,int z):month(x),day(y),year(z){};
    friend class Time;//Time  Date     
private:
int month;
int day;
int year;
};

void Time::add_a_second(Date &t)
{
    sec++;
    if(sec>59)
   {

     minute++;
     sec=0;
       if(minute>59)
     {

       hour++;
         minute=0;
            if(hour>23)
             {
                 hour=0;

                  t.day++;

                         if(t.month==4||t.month==9||t.month==6||t.month==10)

                          {


                              if (t.day>30)
                              {
                               t.day=1;
                               t.month++;
                              }

                          }
                           else if(t.month==2)

                    {


                           if(t.year%4==0&&t.year%100!=0||t.year%400==0)

                        {


                            if(t.day>29)
                                {
                                 t.day=1;
                                 t.month++;
                                }
                        }
                            else
                        {


                                if(t.day>28)
                                {
                                    t.day=1;
                                    t.month++;
                                }
                        }
                    }
                          else

                              if (t.day>31)
                              {
                               t.day=1;
                               t.month++;
                              }
                              if(t.month>12)
                              {
                                  t.month=1;
                                  t.year++;
                              }

             }
     }
   }
}
void Time::display(Date &t)
{
    cout<<t.month<<' '<<t.day<<' '<<t.year<<' '<<hour<<":"<<minute<<":"<<sec<<endl;
}
int main()
{
    Time t1(23,59,32);
    Date d1(12,31,2013);//   ,   Date d1(2,28,2013)
    for(int i=0;i<=100;i++)
    {
        t1.add_a_second(d1);
        t1.display(d1);
    }
    return 0;
}
<img src="http://img.blog.csdn.net/20160420195414171" alt="" /><img src="http://img.blog.csdn.net/20160420195427296" alt="" />