日期类

在Date类中

成员变量

private:
   int _year;
   int _month;
   int _day;

日期类的构造函数(年月日)

 public:
   Date(int year,int month,int day){
     _year = year;
     _month = month;
     _day = day;
   }

输出函数(输出年月日)

  void display(){
    cout<<_year<<"."<<_month<<"."<<_day<<endl;
  }

判断是否为闰年

  bool IsLeapYear(int year){
    if(year%4==0 && year%100!=0 || year%400==0){
      return true;
    }
    return false;
  }

得到固定月的天数

 int GetMonthDay(int year,int month){
    int days[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
    if(IsLeapYear(year) && month == 2){
      return 29;
    }else{
       return days[month];
    }
  }

运算符重载(==,!=,<)

  bool operator==(co Date &d){
    return _year == d._year && _month == d._month && _day == d._day;
    }


  bool operator!=(const Date& d){
    return !(*this == d);
  }

  bool operator<(const Date& d){
    if(_year < d._year){
      return true;
    }else if(_month < d._month){
       return true;
     }else(_day < d._day){
       return true;
      }
    return false;
  }

运算符重载(+=,+,-=,-)

 Date& operator+=(int day){
   _day += day;
   while(_day > GetMonthDay(_year,_month)){
     _day -= GetMonthDay(_year,_month);
     ++_month;
   }
   if(_month > 12){
     ++_year;
   }
   return *this;
 }

 Date operator+(int day){
   Date ret(*this);
   ret += day;
   return ret;
 }

 Date& operator-=(int day){
   _day -= day;
   while(_day <= 0){
     --_month;

     if(_month == 0){
       --_year;
       _month = 12;
     }
     _day += GetMonthDay(_year,_month);
   }
   return *this;
 }
 Date operator-(int day){
   Date ret(*this);
   ret-=day;
   return ret;
 }

前置++,后置++

Date& operator++(){
  *this += 1;
  return *this;
}

Date operator++(int){
  Date ret(*this);
  *this += 1;
  return ret;
}



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值