前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >『C语言』系统日期&时间

『C语言』系统日期&时间

作者头像
謓泽
发布2022-12-12 15:55:52
2.5K0
发布2022-12-12 15:55:52
举报
文章被收录于专栏:【C】系列

🚩write in front🚩 🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 🏅2021年度博客之星物联网与嵌入式开发TOP5~2021博客之星Top100~阿里云专家 ^ 星级博主~掘金⇿InfoQ创作者~周榜77»总榜1766🏅 🆔本文由 謓泽 原创 CSDN首发 🙉 如需转载还请通知⚠ 📝个人主页-謓泽的博客_CSDN博客💬 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 📣系列专栏-YY_謓泽的博客-CSDN博客🎓 ✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩 

目录「系统日期&时间」↓ 🚩write in front🚩 ⒈题目内容 ⒉题目要求 ⒊思考问题 ⒋解题思路 ¹time - 库函数 ²localtime - 库函数 ⒌程序代码  ⒍代码运行结果

⒈题目内容 输出系统的日期以及时间。 在本代码当中只有一个main函数将各个控制命令保存在数组当中,然后适用循环语句设置一个死循环。在该循环当中让用户输入命令指令,并且判断用户输入的命令是否和数组当中存储的命令是否相同。如果它们是相同的,则执行相对应的内容。 ⒉题目要求 用户进行某一个操作需要输入一个命令,如果命令输入错误,系统会进行提示。 当用户输入命令字符"0"会显示帮助信息。 当用户输入命令字符"1"会显示系统日期。 当用户输入命令字符"2"会显示系统时间。 当用户输入命令字符"3"会执行退出系统。 ⒊思考问题 一:需要保证程序能够一直执行下去,等待用户的命令防止主函数结束。 二:获取系统日期和系统时间。 ⒋解题思路 结构体struct tm当中的结构成员如下↓

代码语言:javascript
复制
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() 函数的声明。

代码语言:javascript
复制
  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() 函数的声明。

代码语言:javascript
复制
  struct tm *localtime(const time_t *timer)
 

参数 timer -- 这是指向表示日历时间的 time_t 值的指针。 返回值 该函数返回指向 tm 结构的指针,该结构带有被填充的时间信息。

⒌程序代码 

系统日期&时间 → 代码示例如下↓

代码语言:javascript
复制
#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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ⒌程序代码 
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档