介绍
这篇文章主要介绍了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++如何实现日期类