本篇博客借用c++简单实现一个日期类
其中包括日期计算器,日期比较大小。
接下来我将注释写到代码中方便理解。
Date.h
#pragma once
class Date
{
public:
Date(int year = 1900, int month = 1, int day = 1)//缺省构造函数
:_year(year)
, _month(month)
, _day(day)
{
if (!IsInvalid())
{
cout << "非法数据" << endl;
assert(false);
}
}
//拷贝构造函数
Date(const Date& d)
{
_year = d._year;
_month = d._month;
_day = d._day;
//赋值运算符重载
Date operator=(const Date& d)
{
//避免自身赋值
if (this != &d)
{
this->_year = d._year;
this->_month = d._month;
this->_day = d._day;
}
return *this;
}
//析构函数
~Date()
{
// cout << "~Date()" << endl;
}
//打印日期
void show()
{
cout << _year << "-" << _month << "-" << _day << endl;
}
//判断是否为闰年,是返回1,不是返回0
bool isLeapYear(int year)
{
if ((year % 4 == 0 && year % 100 == 0) || (year % 400 != 0))
{
return 1;//是闰年
}
return 0;//不是闰年
}
//因每月天数不同,故借助数组设置,数组元素第1个为0,其余的为相应的月份
//当然也可使用switch语句