C语言系统日期和时间实例详解

 更新时间:2022年06月26日 10:47:06   作者:謓泽  
我们在写C语言程序的时候,有的时候会用到读取本机的时间和日期,下面这篇文章主要给大家介绍了关于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语言系统日期和时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • c++之std::get_time和std::put_time

    c++之std::get_time和std::put_time

    std::get_time和std::put_time是C++中用于日期和时间的格式化和解析的函数,它们都包含在<iomanip>头文件中,std::get_time用于从输入流中解析日期时间字符串,而std::put_time则用于将std::tm结构格式化为字符串
    2024-10-10
  • VS2019配置opencv详细图文教程和测试代码的实现

    VS2019配置opencv详细图文教程和测试代码的实现

    这篇文章主要介绍了VS2019配置opencv详细图文教程和测试代码的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • C++指针作为函数的参数进行传递时需要注意的一些问题

    C++指针作为函数的参数进行传递时需要注意的一些问题

    当指针作为函数的参数进行传递的时候,本质上还是进行的“值传递”,也就是复制了一个新的指向该地址的指针变量
    2013-10-10
  • C++双向链表的增删查改操作方法讲解

    C++双向链表的增删查改操作方法讲解

    相较单链表,双向链表除了data与next域,还多了一个pre域用于表示每个节点的前一个元素。这样做给双向链表带来了很多优势。本文主要介绍了双向链表的实现,需要的可以参考一下
    2023-03-03
  • C++特殊成员详解

    C++特殊成员详解

    这篇文章主要为大家介绍了C++特殊成员,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助,希望能够给你带来帮助
    2021-11-11
  • 创建二叉树 二叉树如何删除节点操作教程

    创建二叉树 二叉树如何删除节点操作教程

    本文将详细介绍二叉树的创建,节点删除,节点增加等一系列操作方法,需要的朋友可以参考下
    2012-12-12
  • 详解C++中多态的底层原理

    详解C++中多态的底层原理

    要了解C++多态的底层原理需要我们对C指针有着深入的了解,这个在打印虚表的时候就可以见功底,所以快来跟随小编一起学习一下吧
    2022-04-04
  • 浅谈C++有理数的表达和计算

    浅谈C++有理数的表达和计算

    这篇文章主要为大家详细介绍了C++有理数的表达和计算,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Opencv实现轮廓提取功能

    Opencv实现轮廓提取功能

    这篇文章主要为大家详细介绍了Opencv实现轮廓提取功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • C++实现LeetCode(162.求数组的局部峰值)

    C++实现LeetCode(162.求数组的局部峰值)

    这篇文章主要介绍了C++实现LeetCode(162.求数组的局部峰值),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07

最新评论