您好,登錄后才能下訂單哦!
本篇內容介紹了“C語言的ctime()和gmtime()怎么用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
函數原型如下:
__CRT_INLINE char *__cdecl ctime(const time_t *_Time); __CRT_INLINE struct tm *__cdecl gmtime(const time_t *_Time);
ctime函數可以將當前時間值轉換為字符串格式返回。返回的字符串格式為:Www Mmm dd hh:mm:ss yyyy 其中,Www 表示星期幾,Mmm 是以字母表示的月份,dd 表示一月中的第幾天,hh:mm:ss 表示時間,yyyy 表示年份。
當前時間值需要通過time函數獲取,通過time函數獲取從 1970-01-01 00:00:00 開始到現在所經過的秒數。然后將這個秒數作為參數傳遞到ctime函數中,ctime函數將這個秒數轉換為當前時間格式的字符串返回。
下面通過一個簡單的例子演示一下ctime函數的用法。
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(int argc, char** argv) { time_t now_time; time(&now_time); printf("%s ",ctime(&now_time)); return 0; }
首先通過time函數獲取時間計數值,然后再將這個計數值傳入ctime函數,然后使用 printf函數將 ctime函數返回的字符串打印出來。程序運行結果如下:
gmtime函數是把日期和時間轉換為格林威治(GMT)時間的函數。將參數time 所指的time_t 結構中的信息轉換成真實世界所使用的時間日期表示方法,然后將結果由結構tm返回。
這個理解起來有點抽象,下面直接通過代碼來演示gmtime函數的用法。
時間結構信息如下:
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 到 11 */ int tm_year; /* 自 1900 起的年數 */ int tm_wday; /* 一周中的第幾天,范圍從 0 到 6 */ int tm_yday; /* 一年中的第幾天,范圍從 0 到 365 */ int tm_isdst; /* 夏令時 */ };
這個時間結構的定義在頭文件time.h
中。
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(int argc, char** argv) { char *wday[]= {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}; time_t timep; struct tm *p; time(&timep); p=gmtime(&timep); /* 獲取系統當前時間 */ printf("%d年 %02d月 %02d日",(1900+p->tm_year),(1+p->tm_mon),p->tm_mday); printf("%s %02d:%02d:%02d\n",wday[p->tm_wday],(p->tm_hour+8),p->tm_min,p->tm_sec); return 0; }
系統運行結果如下:
在這里要注意一點,系統返回的年數是從1900年開始計算的,所以在打印年份的時候記得要在年份的值上加上1900。
通過上面兩個函數對吧看出通過ctime函數得到的時間格式是字符串形式的,通過gmtime函數得到的時間格式是結構體形式的。在程序中更加自己的需要選擇來調用不同的函數。
“C語言的ctime()和gmtime()怎么用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。