日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

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

作者:謓澤 ? 更新時間: 2022-08-18 編程語言

⒈題目內容

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

在本代碼當中只有一個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說明無效,負數說明信息不可用)

1time - 庫函數

描述

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 對象返回當前日歷時間。

2localtime - 庫函數

描述

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

總結

原文鏈接:https://blog.csdn.net/weixin_52632755/article/details/125268926

欄目分類
最近更新