下一天

一:描述問題

讀入一個格式爲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;
} 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章