C語言系統(tǒng)日期和時間實例詳解
⒈題目內(nèi)容
輸出系統(tǒng)的日期以及時間。
在本代碼當(dāng)中只有一個main函數(shù)將各個控制命令保存在數(shù)組當(dāng)中,然后適用循環(huán)語句設(shè)置一個死循環(huán)。在該循環(huán)當(dāng)中讓用戶輸入命令指令,并且判斷用戶輸入的命令是否和數(shù)組當(dāng)中存儲的命令是否相同。如果它們是相同的,則執(zhí)行相對應(yīng)的內(nèi)容。
⒉題目要求
用戶進(jìn)行某一個操作需要輸入一個命令,如果命令輸入錯誤,系統(tǒng)會進(jìn)行提示。
當(dāng)用戶輸入命令字符"0"會顯示幫助信息。
當(dāng)用戶輸入命令字符"1"會顯示系統(tǒng)日期。
當(dāng)用戶輸入命令字符"2"會顯示系統(tǒng)時間。
當(dāng)用戶輸入命令字符"3"會執(zhí)行退出系統(tǒng)。
⒊思考問題
一:需要保證程序能夠一直執(zhí)行下去,等待用戶的命令防止主函數(shù)結(jié)束。
二:獲取系統(tǒng)日期和系統(tǒng)時間。
⒋解題思路
結(jié)構(gòu)體struct tm當(dāng)中的結(jié)構(gòu)成員如下↓
int tm_sec 分后的秒(0-61) 多出來的兩秒是用來處理跳秒問題用的
int tm_min 小時后的分(0-59)
int tm_hour 午夜后的小時(0-23)
int tm_mday 月中的天(0-31) 本月第幾日
int tm_mon 一月后的月數(shù)(0-11) 本年第幾月
int tm_year 1900年后的年數(shù),要加1900表示那一年
int tm_wday 星期日后的天數(shù)(0-6) 本周第幾日
int tm_yday 一月一日后的天數(shù)(0-365),本年第幾日,閏年有366日
int tm_isdst 夏令時標(biāo)志(大于0的值說明夏令時有效,0說明無效,負(fù)數(shù)說明信息不可用)
¹time - 庫函數(shù)
描述
C語言當(dāng)中的庫函數(shù) time_t time(time_t *seconds) 返回自紀(jì)元 Epoch(1970-01-01 00:00:00 UTC)起經(jīng)過的時間,以秒為單位。如果 seconds 不為空,則返回值也存儲在變量 seconds 中。
聲明
下面是 time() 函數(shù)的聲明。
time_t time(time_t *seconds)
注→這個存儲的類型是時間類型也就是time_t在我們獲取系統(tǒng)日期之前我們需要定義一個時間類型的變量。
參數(shù)
seconds -- 這是指向類型為 time_t 的對象的指針,用來存儲 seconds 的值。
返回值
以 time_t 對象返回當(dāng)前日歷時間。
²localtime - 庫函數(shù)
描述
C 庫函數(shù) struct tm *localtime(const time_t *timer) 使用 timer 的值來填充 tm 結(jié)構(gòu)。timer 的值被分解為 tm 結(jié)構(gòu),并用本地時區(qū)表示。
聲明
下面是 localtime() 函數(shù)的聲明。
struct tm *localtime(const time_t *timer)
參數(shù)
timer -- 這是指向表示日歷時間的 time_t 值的指針。
返回值
該函數(shù)返回指向 tm 結(jié)構(gòu)的指針,該結(jié)構(gòu)帶有被填充的時間信息。
⒌程序代碼
系統(tǒng)日期&時間 → 代碼示例如下↓
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<time.h> #include<Windows.h> //結(jié)構(gòu)體指針變量指向(->)的就是結(jié)構(gòu)體類型當(dāng)中成員變量 struct tm* fun_Time; void color(short x) { if (x >= 0 && x <= 15) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x); else SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); } void menu() { color(0); system("cls"); color(10); printf("|--------- 系統(tǒng)&時間 --------|\n"); printf("|-------★ 1.系統(tǒng)日期 ★------|\n"); printf("|-------★ 2.系統(tǒng)時間 ★------|\n"); printf("|-------★ 3.退出系統(tǒng) ★------|\n"); } void Time() { time_t Time;//定義時間類型 time(&Time);//獲取系統(tǒng)日期 //注:指針變量接收地址,在這里我們定義了結(jié)構(gòu)體指針變量所以只需要用結(jié)構(gòu)體指針當(dāng)中變量用來存儲地址即可。 //struct tm* fun_Time = localtime(&Time);同理 fun_Time = localtime(&Time);//轉(zhuǎn)換為系統(tǒng)時間 } int main(void) { const int date[4] = {0,1,2,3}; int n = 0; printf("請輸入[0]獲取幫助信息:"); while (1) { color(1); scanf_s("%d", &n); if (date[0] == n) menu(); else if (date[1] == n) { Time();//時間屬性 printf("系統(tǒng)日期:%d-%d-%d\n", 1900 + fun_Time->tm_year, fun_Time->tm_mon + 1, fun_Time->tm_hour); } else if (date[2] == n) { Time();//時間屬性 printf("系統(tǒng)日期:%d:%d:%d\n", fun_Time->tm_hour, fun_Time->tm_min, fun_Time->tm_sec); } else if (date[3] == n) { printf("退出EXIT!\n"); break; } else printf("你輸入的指令錯誤,請重新輸入:"); } return 0; }
⒍代碼運行結(jié)果
⒈獲取信息
?
⒉系統(tǒng)日期⒊系統(tǒng)時間⒋退出EXIT
總結(jié)
到此這篇關(guān)于C語言系統(tǒng)日期和時間的文章就介紹到這了,更多相關(guān)C語言系統(tǒng)日期和時間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言數(shù)據(jù)結(jié)構(gòu)與算法之圖的遍歷(一)
這篇文章主要是介紹了利用深度優(yōu)先算法實現(xiàn)圖的遍歷,文中利用圖文詳細(xì)的介紹了實現(xiàn)步驟,對我們學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法有一定的幫助,需要的朋友可以參考一下2021-12-12