定义日期类,重载自增运算。
输入
包括多组数据,每组包括3个整数表示一个日期中的年、月、日。
输出
日期的下一天。输出格式见样例。
样例输入
2000 1 2
2012 2 28
2001 2 28
2011 12 31
2012 4 30
样例输出
2000/1/3
2012/2/29
2001/3/1
2012/1/1
2012/5/1
1:31 2:闰年29, 平年28, 3:31, 4:30 ,5:31 ,6:30, 7:31, 8:31, 9:30 ,10:31, 11:30, 12:31
判断闰年的标准是:1、能整除4且不能整除100 2、能整除400
#include <iostream>
using namespace std;
class Date{
public:
Date(int y=0,int m=0,int d=0)
{ year=y;
month=m;
day=d;
}
friend Date operator++(Date &d1)//
{
Date temp;//
temp.year=d1.year;//
temp.month=d1.month;//
temp.month=++d1.day;//
return temp;//
}
void disp()
{ if((year%400==0)||(year%4==0&&year%100!=0))
{ if(month==2)
{ if(day>29)
{ month=++month;
day=day-29;
}
if(month>12)
{ year=++year;
month=1;
}
}
}
else
{ if(month==2)
{ if(day>28)
{ month=++month;
day=day-28;
}
if(month>12)
{ year=++year;
month=1;
}
}
}
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
{ if(day>31)
{ month=++month;
day=day-31;
}
if(month>12)
{ year=++year;
month=1;
}
}
else
{ if(day>30)
{ month=++month;
day=day-30;
}
if(month>12)
{ year=++year;
month=1;
}
}
cout<<year<<"/"<<month<<"/"<<day<<endl;
}
private:
int year,month,day;
};
int main()
{ int a,b,c;
while(cin>>a>>b>>c)
{ Date d(a,b,c);
++d;
d.disp();
}
return 0;
}