C 關於日期的計算

2021-09-28 19:26:34 字數 1045 閱讀 4631

**: 

#include int month[13][2]=,,,,,

,,,,,,,};

bool isleap(int year)

int main()

y1=d1/10000;

y2=d2/10000;

m1=(d1%10000)/100;

m2=(d2%10000)/100;

day1=d1%100;

day2=d2%100;

while(y1注意的點:

1.區別閏年非閏年的條件 是可以整除4並且不可以整除100或可以整除400

2.閏年非閏年的表示:定義了乙個二維陣列,在後面非常利於表達。

自己一開始做的時候,選擇了switch case語句後又選擇if else來表達 是哪個月份進行區分,結果執行超時,**量太大,邏輯思維被**量覆蓋。

定義這種陣列,想要就取出來,一勞永逸。

3.判斷是否是閏年可以寫成bool函式,返回值可以對應二維陣列的列下標(閏年還是非閏年的那一列)。

4.整個過程思路要清楚:不可以直接用日期做減法,因為年月日的進製不同。

採用加法,從小日期(早)一直每天加起來,遇到進製就進製(每月的天數+1進乙個月,天數剩1;13月進1,月數剩1;)

這裡進製看到用了if語句,裡面的條件被陣列有效的簡化了,原來可能要說,是1,3,5,7,8,10,12月的31天進啦,閏年的2月又怎麼怎麼,這裡直接我不判斷了,月份甩進陣列的行下標進去取出來,是多少就是多少天。

不知道說能不能說清楚,怕自己過幾天又忘了。

5.記住關鍵:定義二維陣列,加法算日期。其他應該就是編寫的規範和技巧了吧,多練練應該就好了。

ps:在定義變數的時候一開始為了方便記憶,我還專門用翻譯軟體搜了earliydate laterdate啥的很長,結果好像**量會增加。。改了名字後,**量減少了很多。

最後發現還不是**量的問題,是因為我閏年的條件沒看清,是不可以被100整除。

C 中關於常用日期的計算

void main 結果 本週周一 2019 08 12 本週週末 2019 08 18 17 44 42 本月月初 2019 08 01 17 44 42 本月月末 2019 08 31 17 44 42 本季度初 2019 07 01 17 44 42 本季度末 2019 09 30 17 44...

C 計算日期

今天datetime.now.date.toshortdatestring 昨天,就是今天的日期減一 datetime.now.adddays 1 toshortdatestring 明天,同理,加一 datetime.now.adddays 1 toshortdatestring 本週 要知道本週...

C 根據日期計算日期週數

當我們知道乙個日期後,有的時候想知道當前日期是當年的第幾周 如我們做週報計畫什麼的就可能遇到 一周的第一天是週幾有兩種說法,有的是以周一圍一周的第一天,有的是以週日為一周的第一天,下面根據兩種情況分別來計算 一 以週日為一周的第一天 根據日期計算日期週數 以週日為一周的第一天 日期 日期週數 pri...