3.4日期處理

#include<iostream>
#include<cstdio>
//平年和閏年的每月的天數 
int month[13][2]={{0,0},{31,31},{28,29},{31,31},{30,30},{31,31},{30,30},{31,31},{31,31},{30,30},{31,31},{30,30},{31,31}};
using namespace std;
bool isLeap(int year){
	return (year%4==0&&year%100!=0)||(year%400==0);
}//判斷是否閏年 
int main()
{
	int time1,y1,m1,d1;
	int time2,y2,m2,d2;//time1和time2輸入 
	while(scanf("%d%d",&time1,&time2)!=EOF){
		if(time1>time2){//第一個日期晚於第二個日期,交換 
			int temp=time1;
			time1=time2;
			time2=temp;
		}
		y1=time1/10000,m1=time1%10000/100,d1=time1%100;
		y2=time2/10000,m2=time2%10000/100,d2=time2%100;//存儲年月日 
		int ans=1;
		//第一個日期沒達到第二個日期時進行 
		while(y1<y2||m1<m2||d1<d2){
			d1++;//天數+1 
			if(d1==month[m1][isLeap(y1)]+1){
				m1++;
				d1=1;
			}
			if(m1==13){//滿12個月,日期變爲下一年1月 
				y1++;
				m1=1;
			}
			ans++;
		}
		printf("%d\n",ans);
	}
	return 0;
}

 

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