Date类重载“+”运算符

来源:互联网 发布:c语言生成Excel文件 编辑:程序博客网 时间:2024/06/06 00:05

[7.11]为Date类重载“+”运算符,实现在某一个日期上(月、日、年)加一个天数。Date类如下:

class Date{

      public:

    Date(){ }

    Date(int m,int d,int y)

    { month=m;

day=d;

year=y; 

}

    void print()

    { cout<<year<<"."<<month<<"."<<day<<endl;

    }

    Date operator +(int);

      private:

    int month,day,year;

};

#include<iostream>    using namespace std;class Date{      public:    Date(){ }    Date(int m,int d,int y)    { month=m;           day=d;             year=y; }    void print()    {cout<<year<<"."<<month<<"."<<day<<endl;    }    Date operator +(int);      private:    int month,day,year;};static int days[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};int isleap(int year){ if ((year%4==0&&year%100!=0)||(year%400==0))return 1;elsereturn 0;}Date Date::operator+(int n){int leap;      leap=0;      leap=isleap(this->year);      n+=this->day;      while (n>days[leap][this->month-1])      {   n-=days[leap][this->month-1];        if (++(this->month)==13) { this->month=1;(this->year)++;      leap=isleap(this->year);    }      }      this->day=n;      return *this;}int main(){ Date d1(2,20,2000),d2;      d1.print();      d2=d1+365;      d2.print();  return 0;}


0 0
原创粉丝点击