C語言時間函式
在呼叫系統時間處理時間問題時,需要使用時間函式,使用前需要引入標頭檔案time.h。
1.time函式
time_t time(time_t *t);
time函式會返回從公元1970年1月1日的UTC時間從0時0分0秒算起到現在所經過的秒數。引數t是一個指標,如果不是一個空指標,函式也會將返回值存到t指標所指的記憶體單元中。time_t是“time.h”標頭檔案中定義的一個資料型別,表示一個時間的秒數,相當於一個長整型變數。如果t是一個空指標,函式會返回一個time_t型長整型數。
DEMO:
time_t lt;
time(<);
printf("Now time:%ld\n",lt);
2.gmtime函式
struct tm *gmtime(time_t *timep);
取當前時間函式gmtime:函式gmtime的作用是將time_t表示秒數的時間轉換為人可以理解的時間。這個函式的使用方法如下所示。
從上面的使用方法可知,函式的引數是一個表示當前時間秒數的指標。返回值是一個tm型別的結構體指標。tm結構體是“time.h”標頭檔案中定義的,定義方法和成員如下所示。
struct tm
{
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
這些成員表示的含義和範圍如下所示。
int tm_sec:代表當前秒數,正常範圍是0-59。
int tm_min:代表當前分鐘數,正常範圍是0-59。
int tm_hour:從午夜算起的小時數,範圍是0-23。
int tm_mday:當前月份的日數,範圍是1-31。
int tm_mon:代表當前月份,從一月算起,範圍是0-11。
int tm_year:從1900年算起至今的年數。
int tm_wday:一星期的日數,從星期一算起,範圍是0-6。
int tm_yday:從本年1月1日算起至今的天數,範圍為0-365。
int tm_isdst:是不是使用了夏令時間。如果為1表示使用了夏令時,為0則表示沒有使用夏令時。
DEMO:
struct tm *p_tm;
time_t lt;
time(<);
printf("Now time:%ld\n",lt);
p_tm=gmtime(<);
printf("%d年%d月%d日 %d:%d:%d\n",p_tm->tm_year+1900,p_tm->tm_mon+1,p_tm->tm_mday,p_tm->tm_hour,p_tm->tm_min,p_tm->tm_sec);
3.ctime函式
char *ctime(time_t *timep);
字串格式時間函式ctime:函式ctime的作用是將一個時間返回成一個可以識別的字串格式。這個函式的使用方法如下所示。
4.asctime函式
char * asctime(struct tm * timeptr);
字串格式時間函式asctime:函式asctime的作用是將一個tm格式的時間轉換為一個字串格式。這個函式的使用方法如下所示。
5.localtime函式
struct tm *localtime(time_t * timep);
取得當地時間函式localtime:函式localtime的作用是返回tm格式的當地時間。與gmtime函式不同的是,gmtime函式返回的是一個UTC時間。localtime時間的使用方法如下所示。
6.mktime函式
time_t mktime(tm * timeptr);
將時間轉換成秒數函式mktime:函式mktime的作用是將一個tm結構型別的時間轉換成秒數時間。該函式的使用方法如下所示。
DEMO:
struct tm *p_tm;
time_t lt;
time(<);
printf("Now time:%ld\n",lt);
p_tm=gmtime(<);
printf("%d年%d月%d日 %d:%d:%d\n",p_tm->tm_year+1900,p_tm->tm_mon+1,p_tm->tm_mday,p_tm->tm_hour,p_tm->tm_min,p_tm->tm_sec);
printf(ctime(<));
printf(asctime(p_tm));
p_tm->tm_year=2014-1900; //賦值年份
printf("Pass time:%ld\n",mktime(p_tm));
7.gettimeofday函式
需要引入標頭檔案sys/time.h
int gettimeofday ( struct timeval * tv , struct timezone * tz )
取得目前的時間函式gettimeofday:前面所講到的時間函式只能把時間精確到秒。如果對時間的處理精度為微秒級,需要使用函式gettimeofday。一微秒等於百萬分之一秒。
這個函式的引數是兩個結構體指標。這兩個結構體的定義如下所示。
struct timeval
{
long tv_sec;
long tv_usec;
};
結構體成員的含義如下所示。
tv_sec:當前時間的秒數。
tv_usec:當前時間的微秒數。
struct timezone{
int tz_minuteswest;
int tz_dsttime;
};
結構體成員的含義如下所示。
tz_minuteswest:與UTC時間相差的分鐘數。
tz_dsttime:與夏令時間相差的分鐘數。
函式gettimeofday會把當前時間的這些引數返回到這兩個結構體指標上。如果處理成功,則返回真值1,否則返回0。這個函式的使用例項如下所示。
DEMO:
struct timeval tv;
struct timezone tz;
gettimeofday(&tv,&tz);
printf("Second:%ld,Usecond:%ld\n",tv.tv_sec,tv.tv_usec);
8.settimeofday函式
int settimeofday (struct timeval *tv, struct timezone *tz);
設定當前時間函式settimeofday:函式settimeofday的作用是設定當前的系統時間。只有root使用者登陸以後才有許可權進行這個操作。
相關文章
- C語言常用函式C語言函式
- C語言的函式C語言函式
- C語言 execve()函式C語言函式
- 08. C語言函式C語言函式
- C語言 函式指標C語言函式指標
- C語言基礎函式C語言函式
- C語言函式呼叫棧C語言函式
- GO語言————6.11 計算函式執行時間Go函式
- C語言庫函式及示例C語言函式
- C語言函式sscanf()的用法C語言函式
- C語言qsort函式的使用C語言函式
- C語言解讀assert函式C語言函式
- C#語言函式遞迴C#函式遞迴
- C語言:使用函式計算兩點間的距離C語言函式
- C語言函式指標與回撥用函式C語言函式指標
- C語言巨集和函式淺析C語言函式
- C 語言回撥函式詳解函式
- c語言快速排序(庫函式使用)C語言排序函式
- c語言學習筆記===函式C語言筆記函式
- C語言有關函式淺析C語言函式
- c語言函式指標的定義C語言函式指標
- C 語言實現泛型 swap 函式泛型函式
- C語言函式指標與回撥函式使用方法C語言函式指標
- Go語言標準庫time之日期和時間相關函式Go函式
- Go 語言函式Go函式
- c語言是如何處理函式呼叫的?C語言函式
- C語言相關的基礎字串函式C語言字串函式
- 【C語言】函式的概念和函式的呼叫(引數傳遞)C語言函式
- 探索MySQL高階語句(數學函式、聚合函式、字串函式、日期時間函式)MySql函式字串
- 如何用最短的時間學會C語言,並掌握C語言的精髓所在?C語言
- c/c++語言函式 stat, fstat, lstat, fstatat - get file statusC++函式
- 【C語言】常用的字串函式及相關函式的自我實現C語言字串函式
- 包含min函式的棧(劍指offer)---C語言函式C語言
- c語言獲取陣列長度的函式C語言陣列函式
- C語言_輸入輸出函式_PAGE5C語言函式
- C語言-字串函式的實現(五)之strstrC語言字串函式
- C語言-字串函式的實現(一)之strlenC語言字串函式
- GO語言————6.1 函式Go函式
- R語言函式-tolowerR語言函式