Linux C 時光函數運用。本站提示廣大學習愛好者:(Linux C 時光函數運用)文章只能為提供參考,不一定能成為您想要的結果。以下是Linux C 時光函數運用正文
關於時光的類型:
time_t long型,表現從1970年1月1日到如今經由的秒數。
#include<time.h> struct tm { int tm_sec; /* 秒 – 取值區間為[0,59] */ int tm_min; /* 分 - 取值區間為[0,59] */ int tm_hour; /* 時 - 取值區間為[0,23] */ int tm_mday; /* 一個月中的日期 - 取值區間為[1,31] */ int tm_mon; /* 月份(從一月開端,0代表一月) - 取值區間為[0,11] */ int tm_year; /* 年份,其值等於現實年份減去1900 */ int tm_wday; /* 禮拜 – 取值區間為[0,6],個中0代表禮拜天,1代表禮拜一,以此類推 */ int tm_yday; /* 從每一年的1月1日開端的天數 – 取值區間為[0,365],個中0代表1月1日,1代表1月2日 };
普通用time_t:界說 time_t now;經由過程now =time(NULL)前往以後的時光(秒數),time函數情勢是“time_t time(time_t*)”,也能夠像如許獲得“time(&now)”。用戶看這個年夜的Long型數據是沒啥意義,普通經由過程這個函數前後獲得時光盤算時光差比擬便利。srand(unsigned(time(NULL))獲得種子的用法應用的就是這個秒數。
想清楚得獲得如今的年代日信息,就不克不及經由過程這個time_t了,須要用struct tm來顯示,而將time_t和struct tm轉換的函數就是localtime(time_t*),前往一個struct tm*類型,留意是指針類型。然後可以獲得tm中的成員,如上,皆為整形。不外留意要想獲得如今的日期還須要做一些tm_year+1900才是如今的年份,tm_mon+1才是如今的月份
假如想直接獲得時光的字符串。
用 char * asctime(const struct tm * timeptr);依據struct tm構造
或許用 char* ctime(time_t* t) ; //依據time_t
輸入的情勢都是像如許 "Tue Jan 6 13:53:16 2015 "
留意思慮為何我們只須要界說一個struct tm*的指針,並沒有請求空間,卻可以獲得其成員?由於locatime前往指針是一個靜態變量的地址。異樣asctime也是異樣道理。