c語言時間函式大全
1、time(time_t&)
#include <time.h>
time_t t
time (&t) //獲取1970年以來的秒數,此處是utc時間
time_t實際上為32位或者64位整數
2、localtime(time_t) 和 gmtime(time_t)
根據上面獲得的秒數t
struct tm * lt = localtime (&t) //轉換為本時區時間資訊
struct tm * gt=gmtime (&t) //轉換為utc時間資訊
其中:
struct tm {
int tm_sec //秒
int tm_min //分
int tm_hour //小時
int tm_mday //日
int tm_mon //月
int tm_year //年
int tm_wday //星期,其中0代表星期天,1代表星期一
int tm_yday //從每年的1月1日開始的天數 ,其中0代表1月1日
int tm_isdst //夏令時識別符號
}
3、mktime(struct tm*)
t=mktime(lt) //將時間結構lt轉為1970年以來的秒數,也可以自己手工構建tm結構
此處lt為本時區時間資訊
4、GetLocalTime(SYSTEMTIME&) 獲取本地時間,有毫秒
SetLocalTime(SYSTEMTIME&) 設定本地時間
SYSTEMTIME st
GetLocalTime(&st)
其中:
STRUCT SYSTEMTIME
{
WORD wYear 年
WORD wMonth 月
WORD wDayOfWeek 星期,0=星期日,1=星期一...
WORD wDay 日
WORD wHour 時
WORD wMinute 分
WORD wSecond 秒
WORD wMilliseconds 毫秒
}
GetSystemTime(SYSTEMTIME&)和SetSystemTime(SYSTEMTIME&) 操作的是UTC時間,其他相同。
5、void ftime(struct timeb *)
#include <sys/timeb.h>
獲取時間,有毫秒
struct timeb tp
ftime(&tp)
其中:
struct timeb{
time_t time /* 為1970-01-01至今的秒數*/
unsigned short millitm /* 毫秒 */
short timezone /* 時區差值,單位為分鐘 */
short dstflag /* 夏令時標識 */
}
6、獲取檔案的時間資訊
#include<sys/stat.h>
int stat(const char * file_name, struct stat *buf)
具體資訊請自行搜尋
7、clock()函式
返回從程式啟動到呼叫時刻的時間間隔。可用於測量兩個事件之前的時間:
clock_t start, finish
double duration
start = clock()
//...事件
finish = clock()
duration = (double)(finish - start) / CLOCKS_PER_SEC
printf( "%f secondsn", duration )
8、gettimeofday()
int gettimeofday(struct timeval*tv, struct timezone *tz)
struct timeval{
long int tv_sec // 1970年以來的秒數
long int tv_usec // 微秒數
}
可以計算程式碼執行時間:
struct timeval tv_begin, tv_end
gettimeofday(&tv_begin, NULL)
//...
gettimeofday(&tv_end, NULL)
9、GetTickCount()
它返回從作業系統啟動到當前所經過的毫秒數,返回值以32位的雙字型別DWORD儲存,因此可以儲存的最大值是(2^32-1) ms約為49.71天,因此若系統執行時間超過49.71天時,這個數就會歸0。
10、GetSystemTimeAsFileTime(FILETIME *)
struct _FILETIME {
DWORDdwLowDateTime
DWORDdwHighDateTime
} FILETIME
相關函式:
SYSTEMTIME st
FILETIME ft
SystemTimeToFileTime(&st, &ft)
FileTimeToSystemTime(&ft, &st)
11、TimeGetTime
和GetTickCount差不多。GetTickCount精度15毫秒,TimeGetTime精度為1ms
-
西紅柿橫切和豎切的差別
橫切豎切是沒有什麼差別的,都是刀切。主要是做菜需要橫豎。涼盤,擺盤用西紅柿都是豎著切,切出的瓣類似西瓜瓣,美觀。如果用來炒菜或者做湯,橫切豎切沒有差別,隨意好了。西紅柿橫切和豎切是有差別的。在現實生活中,平時我們用西紅柿做菜大都是豎著切,很少橫切的。豎切不...
-
九牧流芳是何意
1、“九牧流芳”意思是傳承下去,九牧世家代表一個家族。“九牧世家”源於唐代,原屬晉安林氏一支。因當時林祿後代林披生有九子,分別擔任九州島刺史(又稱州牧),家世顯赫,形成望族,後人稱他們為“九牧林”。2、“九牧流芳”是唐九牧,莆田的九牧林,一家九口中進士。九牧傳芳...
-
晚上九點21分是什麼時辰
晚上九點21分屬於亥時。我國個人把一天等分為十二部分,每一部分相當於現在24小時制的2個小時,並以十二地支來命名每個時辰,從晚上23點起為子時,以此類推。這是我國古人根據一日間太陽出沒的自然規律、天色的變化以及自己日常的生產活動、生活習慣而歸納總結、獨創...
-
坐火車可以到泰國嗎
現在還不能坐火車去泰國,原因在於泰國的高鐵尚在建設過程中,目前我們只能坐火車從昆明經寮國鐵路到達永珍,要到泰國需要經廊開進入,目前這裡只有米軌線,沒有客運任務。不可以。火車是中國道路出行方式中的鐵軌出行方式,只能在陸地執行,而泰國位於亞洲的東南部不與中國...