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語言函式
- C語言 execve()函式C語言函式
- C語言常用函式C語言函式
- C語言的函式C語言函式
- C語言 itoa函式及atoi函式C語言函式
- C語言函式呼叫棧C語言函式
- 詳解C語言函式C語言函式
- tmpnam() - C語言庫函式C語言函式
- tmpfile() - C語言庫函式C語言函式
- c語言函式庫(轉)C語言函式
- C語言 函式指標C語言函式指標
- 08. C語言函式C語言函式
- C語言基礎函式C語言函式
- 51微控制器C語言延時函式C語言函式
- GO語言————6.11 計算函式執行時間Go函式
- C語言庫函式及示例C語言函式
- C語言函式sscanf()的用法C語言函式
- C語言解讀assert函式C語言函式
- C語言qsort函式的使用C語言函式
- C#語言函式遞迴C#函式遞迴
- C語言 sizeof函式詳解C語言函式
- C語言標準函式庫C語言函式
- c#語言-高階函式C#函式
- C語言:使用函式計算兩點間的距離C語言函式
- C語言malloc()函式:動態分配記憶體空間C語言函式記憶體
- [ASM C/C++] C語言的main 函式ASMC++C語言AI函式
- C語言函式指標與回撥用函式C語言函式指標
- C語言printf()函式:格式化輸出函式C語言函式
- C 語言回撥函式詳解函式
- c語言函式指標的定義C語言函式指標
- C語言巨集和函式淺析C語言函式
- C語言有關函式淺析C語言函式
- c語言學習筆記===函式C語言筆記函式
- C語言函式指標基礎C語言函式指標
- C語言Math函式庫簡介C語言函式
- c語言字串處理函式大全C語言字串函式
- c語言快速排序(庫函式使用)C語言排序函式
- python高階函式和C語言函式指標Python函式C語言指標