首頁 > 軟體

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

2022-06-26 14:03:58

⒈題目內容

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

在本程式碼當中只有一個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-%dn", 1900 + fun_Time->tm_year, fun_Time->tm_mon + 1, fun_Time->tm_hour);
        }
        else if (date[2] == n)
        {
            Time();//時間屬性
            printf("系統日期:%d:%d:%dn", 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語言系統日期和時間內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com