時間限制: 1 sec 記憶體限制: 32 mb
獻花: 1446 解決: 395
[獻花][花圈][tk題庫]
有兩個日期,求兩個日期之間的天數,如果兩個日期是連續的我們規定他們之間的天數為兩天。
有多組資料,每組資料有兩行,分別表示兩個日期,形式為yyyymmdd
每組資料輸出一行,即日期差值
20130101
20130105
5
處理日期問題時,使乙個日期不斷加一靠近另乙個日期。
最簡單的思路就是一天天的累加,天數夠月則月數加一,月數夠年則年數加一。
因為平閏年二月天數不同,所以設立陣列來記錄平閏年天數,建構函式來判斷平閏年。
#include #include #include #include #include #include #include #include using namespace std;
#define inf 0x3f3f3f
int month[13][2]= ,,,,,,,,,,,,};
//month陣列用來表示平年和閏年的每個月的天數,第一維表示月份,第二維0表示平年,1表示閏年
bool judge(int y)//判斷平閏年
int main()
int y1=a/10000,m1=a%10000/100,d1=a%100;
int y2=b/10000,m2=b%10000/100,d2=b%100;
int ans=1;
while(y1month[m1][judge(y1)])//如果小日期的天數大於該月的天數,進入下乙個月,月份加一,置為下月1號
if(m1==13)//如果月份大於12,則進入下一年,月份置一
ans++;//累計天數
}printf("%d\n",ans);
}return 0;
}
codeup 1928 日期差值
思路 求日期相差天數的話,就讓少的那個一直加一天 加到多的那個天數為止。具體處理 天數d加了一天後超過當前月m應有的天數時,令月份m 1 別忘了置天數為1號。月份m變成13時,令年份y加1 同時設定月份m為1月。閏年和平年的二月份天數不一樣,所以要用二維陣列存一下每個月的天數 設定二維陣列int m...
codeup 1928 日期差值
有兩個日期,求兩個日期之間的天數,如果兩個日期是連續的我們規定他們之間的天數為兩天。有多組資料,每組資料有兩行,分別表示兩個日期,形式為yyyymmdd 每組資料輸出一行,即日期差值 20130101 201301055 includebool isleap int year int main 確定...
Codeup 1928 日期差值
題目 有兩個日期,求兩個日期之間的天數,如果兩個日期是連續的我們規定他們之間的天數為兩天。有多組資料,每組資料有兩行,分別表示兩個日期,形式為yyyymmdd 每組資料輸出一行,即日期差值 20130101 201301055 include includeusing namespace std b...