C語言系統日期和時間實例詳解

⒈題目內容

輸出系統的日期以及時間。

在本代碼當中隻有一個main函數將各個控制命令保存在數組當中,然後適用循環語句設置一個死循環。在該循環當中讓用戶輸入命令指令,並且判斷用戶輸入的命令是否和數組當中存儲的命令是否相同。如果它們是相同的,則執行相對應的內容。

⒉題目要求

用戶進行某一個操作需要輸入一個命令,如果命令輸入錯誤,系統會進行提示。

當用戶輸入命令字符"0"會顯示幫助信息。

當用戶輸入命令字符"1"會顯示系統日期。

當用戶輸入命令字符"2"會顯示系統時間。

當用戶輸入命令字符"3"會執行退出系統。

⒊思考問題

一:需要保證程序能夠一直執行下去,等待用戶的命令防止主函數結束。

二:獲取系統日期和系統時間。

⒋解題思路

結構體struct tm當中的結構成員如下↓

int tm_sec        分後的秒(0-61) 多出來的兩秒是用來處理跳秒問題用的
int tm_min        小時後的分(0-59)
int tm_hour       午夜後的小時(0-23)
int tm_mday       月中的天(0-31) 本月第幾日
int tm_mon        一月後的月數(0-11) 本年第幾月
int tm_year       1900年後的年數,要加1900表示那一年
int tm_wday       星期日後的天數(0-6) 本周第幾日
int tm_yday       一月一日後的天數(0-365),本年第幾日,閏年有366日
int tm_isdst      夏令時標志(大於0的值說明夏令時有效,0說明無效,負數說明信息不可用)

¹time – 庫函數

描述

C語言當中的庫函數 time_t time(time_t *seconds) 返回自紀元 Epoch(1970-01-01 00:00:00 UTC)起經過的時間,以秒為單位。如果 seconds 不為空,則返回值也存儲在變量 seconds 中。

聲明

下面是 time() 函數的聲明。

time_t time(time_t *seconds)

註→這個存儲的類型是時間類型也就是time_t在我們獲取系統日期之前我們需要定義一個時間類型的變量。

參數

seconds — 這是指向類型為 time_t 的對象的指針,用來存儲 seconds 的值。

返回值

以 time_t 對象返回當前日歷時間。

²localtime – 庫函數

描述

C 庫函數 struct tm *localtime(const time_t *timer) 使用 timer 的值來填充 tm 結構。timer 的值被分解為 tm 結構,並用本地時區表示。

聲明

下面是 localtime() 函數的聲明。

struct tm *localtime(const time_t *timer)

參數

timer — 這是指向表示日歷時間的 time_t 值的指針。

返回值

該函數返回指向 tm 結構的指針,該結構帶有被填充的時間信息。

⒌程序代碼 

系統日期&時間 → 代碼示例如下↓

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<time.h>
#include<Windows.h>
//結構體指針變量指向(->)的就是結構體類型當中成員變量
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("|---------  系統&時間 --------|\n");
    printf("|-------★ 1.系統日期 ★------|\n");
    printf("|-------★ 2.系統時間 ★------|\n");
    printf("|-------★ 3.退出系統 ★------|\n");
}
void Time()
{
    time_t Time;//定義時間類型
    time(&Time);//獲取系統日期
    //註:指針變量接收地址,在這裡我們定義瞭結構體指針變量所以隻需要用結構體指針當中變量用來存儲地址即可。
    //struct tm* fun_Time = localtime(&Time);同理
    fun_Time = localtime(&Time);//轉換為系統時間
}
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("系統日期:%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("系統日期:%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;
}

⒍代碼運行結果

⒈獲取信息 

⒉系統日期⒊系統時間⒋退出EXIT

總結

到此這篇關於C語言系統日期和時間的文章就介紹到這瞭,更多相關C語言系統日期和時間內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: