c++如何实现日期类

  介绍

这篇文章主要介绍了c++如何实现日期类,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

具体内容如下

# include   # include   using  namespace 性传播疾病;   class 日期   {   公众:   ,//构造函数   ,日期(int  year =, 1900年,int  month =, 1, int  day =, 1)   ,:_year(年)   ,,_month(月)   ,,_day(天)   ,{   (!,if  IsInvalidDate (_year, _month,, _day))   ,{   时间=_year 才能;1900;   时间=_month 才能;1;   时间=_day 才能;1;   ,}   ,}   ,//拷贝函数   ,日期(const  Date&, d)   ,:_year (d._year)   ,,_month (d._month)   ,,_day (d._day)   ,{}   ,   ,//析构函数   ,~日期()   ,{}   ,   ,//判断是不是闰年   ,bool  IsLeapYear (int 一年)   ,{   if (才能(year  %, 400,==, 0), | |   ,,((year  %, 4,==, 0),,,, (year  %, 100, !=, 0)),)   {才能   return 才能;真实;   ,,}   return 才能;假;   ,}   ,//判断是不是合法日期   ,bool  IsInvalidDate (int ,, int 月,int 天)   ,{   if 才能;((& lt; year  1), | |   (才能month  & lt;, 0, | |, month 在12),| |   (才能day  & lt;, 0, | |, day 祝辞,YearsOfMonth(年,月)))   {才能   return 才能;假;   ,,}   return 才能;真实;   ,}   ,//判断当前月份多少天   ,int  YearsOfMonth (int ,, int 月)   ,{   int 才能;一天;   int 才能;天[13],=,{0,31日,28日,31日,30日,31日,30日,31日,31日,30日,31日,30日,31};   时间=day 才能;天(月);   if 才能;(month ==, 2,,,, IsLeapYear(年))   {才能   day 才能+=,1;   ,,}   return 才能;一天;   ,}   ,//修正日期   ,Date  ToCorrect (Date 和d)   ,{   while 才能;(d._day 祝辞,YearsOfMonth (d._year, d._month), | |, d._day  & lt;=, 0)   {才能   如果才能(d._day  & lt;=, 0)   {才能   ,,d._day  +=, YearsOfMonth (d._year, (, d._month 作用;1));   ,,if  (d._month ==, 1)   ,,{   ,,d._month =, 12;   ,,d._year——;   ,,}   其他的,,   ,,{   ,,d._month——;   ,,}   ,,}   其他的才能   {才能   ,,d._day  -=, YearsOfMonth (d._month d._year也);   ,,if  (d._month ==, 12)   ,,{   ,,d._year + +;   ,,d._month =, 1;   ,,}   其他的,,   ,,{   ,,d._month + +;   ,,}   ,,}   ,,}   return 才能;d;   ,}   ,//当前日期天天后是什么日期?,   ,Date 运营商+ (int 天)   ,{   Date 才能tmp (*);   +=tmp._day 才能;天;   ToCorrect才能(tmp);   return 才能,tmp;   ,}   ,   ,//当前日期天天前是什么日期?,   运营商,Date  (int 天)   ,{   Date 才能tmp (*);   -=tmp._day 才能;天;   ToCorrect才能(tmp);   return 才能,tmp;   ,}   ,   ,//日期比大小,   ,bool  operator> (const  Date&, d)   ,{   ,return  (_year 祝辞,d._year  | |,   ,,(_year ==, d._year ,,, _month 祝辞,d._month), | |   ,,(_year ==, d._year ,,, _month ==, d._month ,,, _day 祝辞,d._day));   ,}   ,bool  operator<(const  Date&, d)   ,{   ,return  (_year  & lt;, d._year  | |   ,,(_year ==, d._year ,,, _month  & lt;, d._month), | |   ,,(_year ==, d._year ,,, _month ==, d._month ,,, _day  & lt;, d._day));   ,}   ,bool 操作符==(const  Date&, d)   ,{   ,return  ((_year ==, d._year),,,, (_month ==, d._month),,,, (_day ==, d._day));   ,}   ,bool 操作员!=(const  Date&, d)   ,{   ,return  !(*却;能够==,d);   ,}   ,bool  operator>=(const  Date 和d)   ,{   ,return  ! (* this d);   ,}   ,   ,//重载取地址符号,   ,日期* operator& ()   ,{   ,   ,}   ,   ,//前置+ +,   ,Date&运营商+ + ()   ,{   ,(*)+ +;   ,return  *;   ,}   ,   ,//后置+ +,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

c++如何实现日期类