用mktime的一些坑(月份未減一所導致的問題)

2021-08-28 11:32:09 字數 639 閱讀 6531

time_t mktime(struct tm *)

其中的tm結構體定義如下:

struct tm ;

我們只要給出年月日時分秒,然後用mktime()就可以,獲取的星期存在tm_wday中

mktime為什麼那麼慢:

測試程式如下:如果月份未減一

#include "time.h"

#include "stdio.h"

#include "stdlib.h"

int main(void)

測試結果如下:很明顯8月31日   變為10月1日     3月31日變為5月1日    5月31日變為6月1日

第乙個原因是:由於時間結構體裡的月份儲存範圍為0~11,所以不減一會被解析為4月,而四月又是小月,他沒有第31天;由於mktime函式本身的強大,他會直接把多出的一天算到下個月的第一天,也就是變成了五月1號。

所以在跨月的時候是跨月之前的時間變大了,變大了將近一天時間。

這如果用來上傳資料,計算前後時間戳就為負值,很容易出現不容易發現的問題。

未掌握的一些知識

1使用斜槓將一行語句分為多行顯示 item one ab item two solut item three ly total item one item two item three print total 2若是 則不需要斜桿 day monday tuesday wednesday thurs...

Xgboost的一些坑

這兩天做乙個競賽,用xgboost作為工具來做了一些事情。主要的框架是 xgboost的python擴充套件。然後這過程中花了不少時間在解決各種xgboost的error上。大部分的問題都在這個函式裡 dtrain xgb.dmatrix train.txt dtest xgb.dmatrix te...

Cardboard的一些坑

之前用暴風魔鏡做vr移動端的開發,魔鏡的乙個很明顯的優點是它具有搖桿,這個搖桿使用起來很方便 接著就接觸了cardboard的移動端外掛程式,使用起來也是很方便,可以自己寫指令碼做凝視觸發,在開發過程中遇到兩個問題很是頭痛 問題一 網上的版本很多,有的只支援android,有的同時支援android...