1. 詞匯解釋
Coordinated Universal Time(UCT)
協調世界時,又稱為世界標准時間,亦即格林威治標准時間(Greenwich Mean Time,GMT)。中國內地是UTC+8,美國是UTC-5。
Calendar Time
日歷時間,是用“從一個標准時間點到此時的時間經過的秒數”來表示的時間。這個標准時間點對不同的編譯器來說會有所不同,但對一個編譯系統來說,這個標准時間點是不變的,該編譯系統中的時間對應的日歷時間都通過該標准時間點來衡量,所以可以說日歷時間是“相對時間”,但是無論你在哪一個時區,在同一時刻對同一個標准時間點來說,日歷時間都是一樣的。
epoch
時間點,時間點在標准C/C++中是一個整數,它用此時的時間和標准時間點相差的秒數(即日歷時間)來表示。
clock tick
時鐘計時單元(而不把它叫做時鐘滴答次數),一個時鐘計時單元的時間長短是由CPU控制的。一個clock tick不是CPU的一個時鐘周期,而是C/C++的一個基本計時單位。
2. 相關數據類型和函數
頭文件"time.h"
數據定義:
- #ifndef _TM_DEFINED
- 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日,以此類推;
- int tm_isdst; // 夏令時標識符,實行夏令時的時候,tm_isdst為正。不實行夏令時的進候,tm_isdst為0;不了解情況時為負;
- }
- #define _TM_DEFINED
- #endif
-
- #ifndef _TIME_T_DEFINED
- typedef long time_t;
- #define _TIME_T_DEFINED
- #endif
-
- #ifndef _CLOCK_T_DEFINED
- typedef long clock_t;
- #define _CLOCK_T_DEFINED
- #endif