一:描述問題
讀入一個格式爲yyyy-mm-dd的日期(即年-月-日),輸出這個日期下一天的日期。可以假定輸入的日期不早於1600-01-01,也不晚於2999-12-30。
二:源代碼
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int year,month,day;
scanf("%d-%2d-%2d",&year,&month,&day);
int flag=0;//標記是否爲閏年
if((year%4==0&&year%100!=0)||(year%400==0)){
flag=1;
}
if(month==2&&flag==1){ //閏年的2月
if(day==29){
day=1;
month++;
cout << year <<"-03-01"<<endl;
return 0;
}else{
day++;
}
}else if(month==2&&flag==0){ //平年的閏月
if(day==28){
day=1;
month++;
cout <<year<<"-03-01"<<endl;
return 0;
}else{
day++;
}
}
if(month==1||month==3||month==5||month==7||month==8||month==10){ //1 3 5 7 8 10月
if(day==31){
day=1;
month++;
}else{
day++;
}
}else if(month==4||month==6||month==9||month==11){ //4 6 9 11月份
if(day==30){
day=1;
month++;
}else{
day++;
}
}
if(month==12){ //12月
if(day==31){ //12月31號,第二年
year++;
month=1;
day=1;
}else{
day++;
}
}
printf("%d-",year); //輸出
if(month<10){
printf("0%d-",month);
}else{
printf("%d-",month);
}
if(day<10){
printf("0%d",day);
}else{
printf("%d",day);
}
return 0;
}