網站首頁 編程語言 正文
⒈題目內容
輸出系統的日期以及時間。
在本代碼當中只有一個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
相關推薦
- 2022-09-24 Go?類型轉化工具庫cast函數詳解_Golang
- 2022-11-06 react中braft-editor的基本使用方式_React
- 2022-06-16 React中前端路由的示例代碼_React
- 2022-09-17 Python中re.findall()用法詳解_python
- 2022-03-14 flutter ‘package:flutter/src/widgets/container.dar
- 2022-05-12 Kotlin 接口 interface 默認實現了open。并且可以提供默認實現
- 2022-06-17 go語言beego框架jwt身份認證實現示例_Golang
- 2022-08-26 一篇文章學會GO語言中的變量_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支