C语言获取当前的日期及时间

C语言获取当前的日期及时间我们在写 C 语言程序的时候 有的时候会用到读取本机的时间和日期 怎么做呢 其实很简单的 下面简单说一下 C 语言中读取系统时间的函数为 time 其函数原型为 include time h time ttime time t time t 就是 long 函数返回从 1970 年 1 月 1 日 MFC 是 1899 年 12 月 31 日 0 时 0 分 0 秒 到现在的的秒数 可以调用 time h

我们在写C语言程序的时候,有的时候会用到读取本机的时间和日期,怎么做呢?其实很简单的,下面简单说一下:

C语言中读取系统时间的函数为time(),其函数原型为:

#include

time_t time( time_t * ) ;

time_t就是long,函数返回从1970年1月1日(MFC是1899年12月31日)0时0分0秒,到现在的的秒数。

可以调用ctime()函数进行时间转换输出:char * ctime(const time_t *timer);

将日历时间转换成本地时间,按年月日格式,进行输出,如:Wed Sep 23 08:43:03 2015C语言还提供了将秒数转换成相应的时间结构的函数:

struct tm * gmtime(const time_t *timer); //将日历时间转化为世界标准时间(即格林尼治时间)

struct tm * localtime(const time_t * timer); //将日历时间转为本地时间将通过time()函数返回的值,转成时间结构structtm :

struct tm {
int tm_sec; /* 秒 – 取值区间为[0,59] */

int tm_min; /* 分 – 取值区间为[0,59] */

int tm_hour; /* 时 – 取值区间为[0,23] */

int tm_mday; /* 一个月中的日期 – 取值区间为[1,31] */

int tm_mon; /* 月份(从一月开始,0代表一月) – 取值区间为[0,11] */

int tm_year; /* 年份,其值等于实际年份减去1900 */

int tm_wday; /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */

int tm_yday; /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */

int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/};

编程者可以根据程序功能的情况,灵活的进行日期的读取与输出了。

下面给出一段简单的代码:

#include 
  
    int main() {     time_t timep;     struct tm *p;     time (&timep);     p=gmtime(&timep);     printf("%d\n",p->tm_sec); /*获取当前秒*/     printf("%d\n",p->tm_min); /*获取当前分*/     printf("%d\n",8+p->tm_hour);/*获取当前时,这里获取西方的时间,刚好相差八个小时*/     printf("%d\n",p->tm_mday);/*获取当前月份日数,范围是1-31*/     printf("%d\n",1+p->tm_mon);/*获取当前月份,范围是0-11,所以要加1*/     printf("%d\n",1900+p->tm_year);/*获取当前年份,从1900开始,所以要加1900*/     printf("%d\n",p->tm_yday); /*从今年1月1日算起至今的天数,范围为0-365*/ } 
  

参考文献

https://zhidao.baidu.com/question/558299804.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212121.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午8:47
下一篇 2026年3月18日 下午8:47


相关推荐

  • spring事务管理全解析

    spring事务管理全解析

    2021年5月9日
    99
  • 相关性分析方法怎么选择_多个因素相关性分析

    相关性分析方法怎么选择_多个因素相关性分析有时候我们根据需要要研究数据集中某些属性和指定属性的相关性,显然我们可以使用一般的统计学方法解决这个问题,下面简单介绍两种相关性分析方法,不细说具体的方法的过程和原理,只是简单的做个介绍,由于理解可能

    2022年8月5日
    11
  • 大整数乘法的详解

    大整数乘法的详解一.问题由于编程语言提供的基本数值数据类型表示的数值范围有限,不能满足较大规模的高精度数值计算,因此需要利用其他方法实现高精度数值的计算,于是产生了大数运算。尤其是乘法运算,下面就是大整数的乘法的过程(加减法都一样的原理)。二.解决问题的方法方法一(传统的相乘逐步相加)乘法规律,一个数的第i位和另一个数的第j位相乘,一定会累加到结果的第i+j位,结果的数组一个数组元素存2位数,最后对结果整除得到进位,mod得到余数就是i+j位的数字,最后打印出来。对于大整数比较方便的输入方法是,.

    2022年6月2日
    41
  • 施密特触发器 & D触发器归纳总结

    施密特触发器 & D触发器归纳总结上篇文章归纳了单片机 I O 口输入输出的一些原理及不同点 芯片内部涉及到了施密特触发器和 D 触发器 本篇简单做下总结 一 施密特触发器工作原理二 D 触发器工作原理一 施密特触发器介绍简单介绍下施密特触用途场景 其中施密特有个最重要的特性即滞回特性 施密特有滞回的原因是因为器件工作的时候内部存在正反馈导致的 正反馈具体机理这里不展开赘述 1 去除抖动 消除电平转换时的小幅度抖动 2 波形转换 三角波正弦波转换成方波 3 脉冲波整形 消除矩形波在

    2026年3月16日
    0
  • 【常用传感器】DS18B20温度传感器原理详解及例程代码

    【常用传感器】DS18B20温度传感器原理详解及例程代码数字温度传感器 DS18B20 传感器参数

    2026年3月19日
    4
  • springboot2.0 集成redis服务详解,以及 (Lettuce & Jedis)

    springboot2.0 集成redis服务详解,以及 (Lettuce & Jedis)前言在实际项目开发过程中 相信很多人都有用到过 redis 这个 NoSQL 这篇文章就详细讲讲 springboot 如何整合 redisRedis 简介简单介绍下 Redis Redis 是一个开源的使用 ANSIC 语言编写 支持网络 可基于内存也可持久化的日志型 Key Value 数据库 并提供了多种语言的 API 相比 Memcached 它支持存储的类型相对更多 字符 哈希

    2026年3月19日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号