一、日期类是我们学习C+时遇到的一个比较重要的类,在本片文章中,我将把日期类中遇到的接口进行封装,如果哪里有问题,请大家多多指教。
#include<iostream>
using namespace std;
class Date
{
public:
//构造函数
Date(int year = 1900, int month = 1, int day = 1)
:_year(year)
, _month(month)
, _day(day)
{
if (!IsInvalidDate(_year, _month, _day))
{
_year = 1900;
_month = 1;
_day = 1;
}
}
//拷贝构造函数
Date(const Date& d)
{
_year = d._year;
_month = d._month;
_day = d._day;
}
//析构函数
~Date()
{
}
//判断是不是闰年,四年一闰,百年不闰,四百年一闰
bool IsLeapYear(int year)
{
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
{
return true;
}
else
{
return false;
}
}
//判断是不是合法日期,小于当前年月的日期或大于当前年月的日期
bool IsInvalidDate(int year, int month, int day)
{
if ((year < 1) || (month < 0) || (month > 12) || (day > YearsOfMonth(year, month)) || (day < 0))
{
return false;
}
else
{
return