演算法筆記(一) 之計算兩個日期之差

2021-10-08 12:09:43 字數 1577 閱讀 8117

老規矩–妹妹鎮樓:

輸入格式:

yyyymmdd

20130101

20130505

輸出個數:5

要計算日期之間的天數,我們可以想到從小的日期開始不斷加1天,直到小的日期等於大的日期為止。

其中,當天數d等於當前的月份m的天數+1時,月份m就要+1,且天數d置為1;當月份m變為13時,則年份y就要+1,同時月份m置為1。

注意,閏年的2月份天數為29天,平年的2月份天數為28天。

閏年的定義:

閏年是公曆中的名詞。閏年分為普通閏年和世紀閏年。

普通閏年:公曆年份是4的倍數的,且不是100的倍數,為普通閏年。(如2004、2023年就是閏年);

世紀閏年:公曆年份是整百數的,必須是400的倍數才是世紀閏年(如2023年不是世紀閏年,2023年是世紀閏年);

閏年(leap year)是為了彌補因人為曆法規定造成的年度天數與地球實際公轉週期的時間差而設立的。補上時間差的年份為閏年。閏年共有366天,比平年多出的一天在2月份,為29天,平年為28天。

設定二維陣列 int month[13][2]儲存閏年和平年的月份天數

#define _crt_secure_no_warnings

#include

#include

using

namespace std;

int month[13]

[2]=

,,,,

,,,,

,,,,

};//判斷是否是閏年

bool

isleap

(int year)

intmain()

y1 = time1 /

10000

; m1 = time1 %

10000

/100

; d1 = time1 %

100;

y2 = time2 /

10000

; m2 = time2 %

10000

/100

; d2 = time2 %

100;

int ans =1;

//記錄天數

// 不斷加1,直到兩個日期相等

while

(y1 < y2 || m1 < m2 || d1 < d2)

//月份滿了當前年份的月份數

if(m1 ==13)

ans++

;//記錄天數+1

} cout << ans << endl;

}return0;

}

MYSQL 兩個日期之差的各種計算

mysq 資料庫的 timestampdiff 函式 可以計算兩個日期相差的秒數 分鐘數 小時數 天數 週數 季度數 月數 年數,當前日期減少或者增加天數 周數等。select timestampdiff 型別,開始時間,結束時間 相差的秒數 select timestampdiff second,...

iOS開發之計算兩個日期的時間間隔

首先建立格式化物件 nsdateformatter dateformatter nsdateformatter alloc init dateformatter setdateformat yyyy mm dd hh mm ss 然後建立日期物件 nsdate date1 dateformatter...

C 類實現求兩個日期之差

這篇部落格是剛接觸c 的小白寫的第一篇部落格。下面是本小白寫完這題所得 1 類可以完全覆蓋結構體 2 在類外應用 類名 函式名 的形式定義類中的public型成員 3 注意好第2點用類寫函式真的很便利 4 函式頭中的形參也算乙個新的物件 問題描述 宣告乙個表示時間的類ctime,可以精確表示年 月 ...