【C++】日期类的实现
个人主页
创作不易,感谢大家的关注!
文章目录
- ⭐一、前言
- 🎄二、检查日期是否合法
- 🎈三、获取某一年某一月份的天数
- 🏝️四、算数运算符重载
- 1.日期 += 天数
- 2.日期 + 天数
- 3.日期 -= 天数
- 4.日期 - 天数
- 5.日期 - 日期
- 🏠五、递增递减运算符重载
- 1.前置++和后置++
- 2.前置--和后置--
- 🚆六、日期类的大小比较
- ==、>、>=、
if (_month
2.日期 + 天数
由于日期+天数的规则是不能改变当前日期的值,因此在成员函数中定义了一个tmp进行拷贝,最后传值返回。这是因为tmp作为临时变量,出了作用域就会进行销毁。
//用const进行修饰防止左操作数被修改 Date Date::operator-(int day) const { //拷贝构造函数 Date tmp = *this; tmp -= day; return tmp; }
由于+=天数的代码和+天数的代码类似,因此这里就使用了复用操作,提升代码的效率。
3.日期 -= 天数
该功能和上述日期+=天数的功能实现逻辑类似。不过需要不断向月和年去借天数。
Date& Date::operator-=(int day) { _day -= day; while (_day --_month; if (_month == 0) { _month = 12; --_year; } else { _day += GetMonthDay(_year, _month); } } return *this; } Date tmp = *this; tmp -= day; return tmp; } Date max = *this; Date min = d; int flag = 1; if (*this 、>=、 return _year == d._year && _month == d._month && _day == d._day; } bool Date::operator(const Date& d) { return !(*this return !(*this
- ==、>、>=、
if (_month
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。