codeup 1928 日期差值

2021-08-19 04:43:32 字數 985 閱讀 5939

時間限制: 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...