標頭檔案中說明了一些用於處理日期和時間的型別和函式。其中的一部分函式用於處理當地時間,因為時區等原因,當地時間與日曆時間可能不相同。clock_t和time_t是兩個用於表示時間的算術型別,而struct tm則用於存放日曆時間的各個成分。tm的各個成員的用途及取值範圍如下:
int tm_sec; /* 秒,0~61 */
int tm_min; /* 分,0~59 */
int tm_hour; /* 時,0~23 */
int tm_mday; /* 日,1~31 */
int tm_mon; /* 月(從1月開始),0~11 */
int tm_year; /* 年(從2023年開始) */
int tm_wday; /* 星期(從週日開始),0~6 */
int tm_yday; /* 天數(從1月1日開始),0~365 */
int tm_isdst; /* 夏令時標記 */
其中,tm_isdst在使用夏令時時其值為正,在不使用夏令時時其值為0,如果該資訊不能使用,其值為負。
#include
clock_t clock(void);
返回程式自開始執行到目前為止所占用的處理機時間。如果處理機時間不可使用,那麼返回-1。clock()/clocks_per_sec是以秒為單位表示的時間。
#include
time_t time(time_t *tp);
返回當前日曆時間。如果日曆時間不能使用,則返回-1。如果tp不為null,那麼同時把返回值賦給*tp。
#include
double difftime(time_t time2, time_t time1);
返回time2-time1的值(以秒為單位)。
#include
time_t mktime(struct tm *tp);
將結構*tp中的當地時間轉換為time_t型別的日曆時間,並返回該時間。如果不能轉換,則返回-1。
#include
char *asctime(const struct tm *tp);
將結構*tp中的時間轉換成如下所示的字串形式:
day month date hours:minutes:seconds year\n\0
如:fri apr 15 15:14:13 2005\n\0
返回指向該字串的指標。字串儲存在可被其他呼叫重寫的靜態物件中。
#include
char *ctime(const time_t *tp);
將*tp中的日曆時間轉換為當地時間的字串,並返回指向該字串指標。字串儲存在可被其他呼叫重寫的靜態物件中。等價於如下呼叫:
asctime(localtime(tp));
#include
struct tm *gmtime(const time_t *tp);
將*tp中的日曆時間轉換成struct tm結構形式的國際標準時間(utc),並返回指向該結構的指標。如果轉換失敗,返回null。結構內容儲存在可被其他呼叫重寫的靜態物件中。
#include
struct tm *localtime(const time_t *tp);
將*tp中的日曆時間轉換成struct tm結構形式的本地時間,並返回指向該結構的指標。結構內容儲存在可被其他呼叫重寫的靜態物件中。
#include
size_t strftime(char *s, size_t smax, const char *fmt, const struct tm *tp);
根據fmt的格式說明把結構*tp中的日期與時間資訊轉換成指定的格式,並儲存到s所指向的陣列中,寫到s中的字元數不能多於smax。函式返回實際寫到s中的字元數(不包括'\0');如果產生的字元數多於smax,則返回0。
fmt類似於printf()中的格式說明,它由0個或多個轉換規格說明與普通字元組成。普通字元原封不動的拷貝到s中,每個%c按照下面所描述的格式用與當地環境相適應的值來替換。轉換規格列表如下:
格式
說明%a
一星期中各天的縮寫名
%a一星期中各天的全名
%b縮寫月份名
%b月份全名
%c當地時間和日期表示
%d用整數表示的乙個月中的第幾天(01~31)
%h用整數表示的時(24小時制,00~23)
%i用整數表示的時(12小時制,01~12)
%j用整數表示的一年中各天(001~366)
%m用整數表示的月份(01~12)
%m用整數表示的分(00~59)
%p與am/pm對應的當地表示方法
%s用整數表示的秒(00~61)
%u用整數表示一年中的星期數(00~53,將星期日看作為每週的第一天)
%w用整數表示一周中的各天(0~6,星期日為0)
%w用整數表示一年中的星期數(00~53,將星期一看作為每週的第一天)
%x當地日期表示
%x當地時間表示
%y不帶公元的年(00~99)
%y完整年份表示
%z時區名字(可獲得時)
%%%本身
c語言診斷 斷言庫函式 include
include void assert int exp assert巨集用於為程式增加診斷功能。當assert exp 執行時,如果exp為0,則在標準出錯輸出流stderr輸出一條如下所示的資訊 assertion failed expression,file filename,line nnn ...
c語言字串庫函式 include
字串函式 在標頭檔案中定義了兩組字串函式。第一組函式的名字以str開頭 第二組函式的名字以mem開頭。只有函式memmove對重疊物件間的拷貝進行了定義,而其他函式都未定義。比較類函式將其變數視為unsigned char型別的陣列。1 strcpy include char strcpy char...
c語言字元類別測試庫函式 include
標頭檔案中說明了一些用於測試字元的函式。每個函式的變數均為int型別,變數的值必須是eof或可用unsigned char型別表示的字元,函式的返回值為int型別。如果變數滿足所指定的條件,那麼函式返回非0值 表示真 否則返回值為0 表示假 這些函式包括2.1 2.11。在7位ascii字符集中,可...