//----------------------------------
// date.cpp
//----------------------------------
#include<iostream>
#include<iomanip>
#include"date.h"
using namespace std;
void Date::set(int y,int m,int d)
{
year = y;
month = m;
day = d;
}
void Date::print() const
{
cout << setfill('0') ;
cout << setw(4) << year << '/' << setw(2) << month << '/' << setw(2) << day << '\n';
cout << setfill(' ');
}
bool Date::isLeapYear() const
{
return (year%4==0 && year%100!=0)||(year%400==0) ;
}
Date& operator++(Date& d)
{
switch(d.month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: {
if(d.day == 31)
{
d.month ++;
d.day = (d.day+1)%31;
}
else
d.day ++;
}break;
case 2:
{
if(d.isLeapYear())
{
if(d.day == 29)
{
d.month ++;
d.day = (d.day+1)%29;
}
else
d.day ++;
}
else
{
if(d.day == 28)
{
d.month ++;
d.day = (d.day+1)%28;
}
else
d.day++;
}
}break;
case 4:
case 6:
case 9:
case 11:
{
if(d.day == 30)
{
d.month ++;
d.day = (d.day+1)%30;
}
else
d.day++;
}break;
}
return d;
}