一、 日期相关的问题
日期相关的问题基本上都可以通过下面的类来完成。
class Date
{
private:
int y, m, d;
int isleap(int year)
{
if (year % 100 == 0)
return year % 400 == 0;
else
return year % 4 == 0;
}
public:
Date(int _y = 1900, int _m = 1, int _d = 1)
{
y = _y, m = _m, d = _d;
}
void operator ++(int)
{
static int days[2][12] =
{
{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
};
d++;
if (d > days[isleap(y)][m - 1])
m++, d = 1;
if (m > 12)
y++, m = 1;
}
bool operator == (Date& date)
{
return y == date.y && m == date.m && d == date.d;
}
void print()
{
cout << y << "-" << m << "-" << d << endl;
}
};
比如求 2014-11-9 后 1000 天。
评论0