codeup 1928 日期差值

2021-10-17 11:45:36 字數 947 閱讀 4036

題目描述

有兩個日期,求兩個日期之間的天數,如果兩個日期是連續的我們規定他們之間的天數為兩天。

輸入有多組資料,每組資料有兩行,分別表示兩個日期,形式為yyyymmdd

輸出每組資料輸出一行,即日期差值

樣例輸入 copy

20130101

20130105

樣例輸出 copy5思路

不妨假設第乙個日期早於第二個日期(否則交換即可)

這種求日期之間相差天數的題目有乙個很直接的思路。即令日期不斷加1天,直到第乙個日期等於第二個日期為止,即可統計出答案。具體處理時,如果當加了一天之後天數d等於當前日期的月份所擁有的天數加1,那麼令月份m加1,同時置天數d等於1(即把日期變為下乙個月的1號);如果此時月份m變為了13,那麼就令月份y加1,同時置月份m為1月。

為了方便直接取出每個月的天數,不妨定乙個二維陣列int month[13][2],用來存放每個月的天數,其中第二維為0時表示平年,為1時表示閏年。

注意:如果想要加快速度,只需要先把第乙個日期的年份不斷加1,直到與第二個日期的年份相差為1為止,期間根據平年和閏年來累加 365天或者366天即可,之後再不斷進行天數加1的操作。

#includeint month[13][2] = , , , , , , ,, , , ,, 

};int main()

y1 = time1 / 10000, m1 = time1 % 10000 / 100, d1 = time1 % 100;

y2 = time2 / 10000, m2 = time2 % 10000 / 100, d2 = time2 % 100;

int count = 1;

while(y1if(m1==13)

count++;

} printf("%d\n",count);

} return 0;

}

codeup 1928 日期差值

思路 求日期相差天數的話,就讓少的那個一直加一天 加到多的那個天數為止。具體處理 天數d加了一天後超過當前月m應有的天數時,令月份m 1 別忘了置天數為1號。月份m變成13時,令年份y加1 同時設定月份m為1月。閏年和平年的二月份天數不一樣,所以要用二維陣列存一下每個月的天數 設定二維陣列int m...

codeup 1928 日期差值

時間限制 1 sec 記憶體限制 32 mb 獻花 1446 解決 395 獻花 花圈 tk題庫 有兩個日期,求兩個日期之間的天數,如果兩個日期是連續的我們規定他們之間的天數為兩天。有多組資料,每組資料有兩行,分別表示兩個日期,形式為yyyymmdd 每組資料輸出一行,即日期差值 20130101 ...

codeup 1928 日期差值

有兩個日期,求兩個日期之間的天數,如果兩個日期是連續的我們規定他們之間的天數為兩天。有多組資料,每組資料有兩行,分別表示兩個日期,形式為yyyymmdd 每組資料輸出一行,即日期差值 20130101 201301055 includebool isleap int year int main 確定...