题目:读入一个格式为 yyyy-mm-dd 的日期(即年-月-日),输出这个日期下一天的日期。
问题:当输入闰年的二月时无法得到正确值,如 2008-02-28 ,得到的确是 2008-03-01 ,不知道问题出在哪,求轻喷,谢谢啦!
代码:
<pre><code>
include <iostream>
using namespace std;
int leapyear(int a)
{
if (a%4!=0) {
return 0;
}
else {
if (a%100!=0) {
return 1;
}
else {
if (a%400!=0) {
return 0;
}
else {
return 1;
}
}
}
}
int main(){
int y=0,m=0,d=0;
scanf("%d-%d-%d",&y,&m,&d);
if (d<28) {
d+=1;
}
if (d==28) {
if (m!=2) {
d+=1;
}
else {
if (leapyear(y)) {
d+=1;
}
else {
d=1;
m+=1;
}
}
}
if (d==29) {
if (m==2) {
d=1;
m+=1;
}
else {
d+=1;
}
}
if (d==30) {
if (m==1||m==3||m==5||m==7||m==8||m==10||m==12) {
d+=1;
}
else {
d=1;
m+=1;
}
}
if (d==31) {
d=1;
if (m==12) {
m=1;
y+=1;
}
else {
m+=1;
}
}
printf("%d-%02d-%02d\n",y,m,d);
return 0;
}</code></pre>