忻州市城乡建设局网站建设历史文化旅游宣传网站
忻州市城乡建设局网站,建设历史文化旅游宣传网站,搜索引擎公司排名,手机网站制作系统C类和对象的学习#xff0c;我们可以完整实现Date类以及它的各种常见用法了#xff1a; 代码语言#xff1a;javascript
AI代码解释
class Date
{
public:// 获取某年某月的天数int GetMonthDay(int year, int month){static int monthDayArray[13] { -1,31,28,31,30,31,…C类和对象的学习我们可以完整实现Date类以及它的各种常见用法了代码语言javascriptAI代码解释class Date { public: // 获取某年某月的天数 int GetMonthDay(int year, int month) { static int monthDayArray[13] { -1,31,28,31,30,31,30,31,31,30,31,30,31 }; //特殊情况是闰年的二月 if (month 2 ((year % 4 0 year % 100 ! 0) || (year % 400 0))) { return 29; } else { return monthDayArray[month]; } } // 全缺省的构造函数 Date(int year 1900, int month 1, int day 1) :_year(year) , _month(month) , _day(day) { } // 拷贝构造函数 // d2(d1) Date(const Date d) :_year(d._year) , _month(d._month) , _day(d._day) { } // 赋值运算符重载 // d2 d3 - d2.operator(d2, d3) Date operator(const Date d) { _year d._year; _month d._month; _day d._day; return *this; } // 析构函数 ~Date() { } // 友元声明 friend ostream operator(ostream out, const Date d); friend istream operator(istream out, Date d); // 日期天数 Date operator(int day) { if (day 0) { return *this - -day; } _day day; while (_day GetMonthDay(_year, _month)) { _day - GetMonthDay(_year, _month); _month; if (_month 13) { _year; _month 1; } } return *this; } // 日期天数 Date operator(int day) { Date ret *this; ret day; return ret; } // 日期-天数 Date operator-(int day) { Date ret *this; ret - day; return ret; } // 日期-天数 Date operator-(int day) { if (day 0) { return *this -day; } _day - day; while (_day 0) { --_month; if (_month 0) { _month 12; --_year; } _day GetMonthDay(_year, _month); } return *this; } // 前置 Date operator() { *this 1; return *this; } // 后置 Date operator(int) { Date ret *this; *this 1; return ret; } // 后置-- Date operator--(int) { Date ret *this; *this - 1; return ret; } // 前置-- Date operator--() { *this - 1; return *this; } // 运算符重载 bool operator(const Date d) { return !(*this d); } // 运算符重载 bool operator(const 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 (_year d._year) { if (_month d._month) { return true; } else if (_month d._month) { if (_day d._day) { return true; } } } return false; } // 运算符重载 bool operator (const Date d) { return *this d || *this d; } // !运算符重载 bool operator ! (const Date d) { return !(*this d); } // 日期-日期返回相差的天数 int operator-(const Date d) { Date max *this; Date min d; int flag 1; if (*this d) { max d; min *this; flag -1; } int n 0; while (min ! max) { min; n; } return n * flag; } private: int _year; int _month; int _day; }; ostream operator(ostream out, const Date d) { out d._year d._month d._day; return out; } istream operator(istream in, Date d) { cout 请依次输入年月日 endl; in d._year d._month d._day; if (d._month 1 || d._month12 || d._day1 || d._dayd.GetMonthDay(d._year, d._month)) { cout 日期非法 endl; } return in; }简单测试在这里插入图片描述