C语言获取时间与日期的函数大全

2024-02-22 22:04

本文主要是介绍C语言获取时间与日期的函数大全,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


一、最简单获取秒数的,windows和linux都支持用time()函数,获取从1970年到现在过了多少秒,time_t其实是long int 类型
time_t start=time(NULL);
for(long i=0;i<10000000000;)
i+=1;
time_t end=time(NULL)
printf("经过了%d秒",end-start);

二、linux下的,使用gettimeofday()接口获取微秒级别的,传结构体的地址进去,tv_sec是秒,tv_usec是秒余下的微秒值。
#include <stdio.h>
#include <sys/time.h>
int main() {
    struct timeval start, end;
    gettimeofday( &start, NULL );
    sleep(3); 
    gettimeofday( &end, NULL );
    int timeuse = 1000000 * ( end.tv_sec - start.tv_sec ) + end.tv_usec - start.tv_usec; 
    printf("经过了%d微秒", timeuse);
    return 0;
}

三、使用localtime函数把1970到现在经过的秒数转化为日期,
返回一个tm结构体,tm结构体定义为:
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-11],0代表一月
  int tm_year;            //年份,需要加上1970
  int tm_wday;            //星期[0-6],0代表星期天
  int tm_yday;            //从每年1月1日开始的天数[0-365],0代表1月1日
};
函数原型:struct tm *localtime(const time_t *clock);需要把time_t类型的秒数传进去。
四、使用clock()函数,windows下是毫秒,linux下是微秒,这个是程序执行到函数调用时钟滴答总次数。在scanf之类的阻塞函数中这个时钟处理器不会计数。

五、使用ftime函数获取毫秒级,原型 void ftime(struct timeb *tp);timeb结构体
struct timeb {
    time_t time;            /* 为1970-01-01至今的秒数*/
    unsigned short millitm; /* 千分之一秒即毫秒 */
    short timezone;          /* 为时区和Greenwich相差的时间,单位为分钟 */
    short dstflag;           /* 为日光节约时间的修正状态,如果为非0代表启用日光节约时间修正 */
};

这篇关于C语言获取时间与日期的函数大全的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/736628

相关文章

R语言中的正则表达式深度解析

《R语言中的正则表达式深度解析》正则表达式即使用一个字符串来描述、匹配一系列某个语法规则的字符串,通过特定的字母、数字及特殊符号的灵活组合即可完成对任意字符串的匹配,:本文主要介绍R语言中正则表达... 目录前言一、正则表达式的基本概念二、正则表达式的特殊符号三、R语言中正则表达式的应用实例实例一:查找匹配

Go语言结构体标签(Tag)的使用小结

《Go语言结构体标签(Tag)的使用小结》结构体标签Tag是Go语言中附加在结构体字段后的元数据字符串,用于提供额外的属性信息,这些信息可以通过反射在运行时读取和解析,下面就来详细的介绍一下Tag的使... 目录什么是结构体标签?基本语法常见的标签用途1.jsON 序列化/反序列化(最常用)2.数据库操作(

JAVA Calendar设置上个月时,日期不存在或错误提示问题及解决

《JAVACalendar设置上个月时,日期不存在或错误提示问题及解决》在使用Java的Calendar类设置上个月的日期时,如果遇到不存在的日期(如4月31日),默认会自动调整到下个月的相应日期(... 目录Java Calendar设置上个月时,日期不存在或错误提示java进行日期计算时如果出现不存在的

Mybatis对MySQL if 函数的不支持问题解读

《Mybatis对MySQLif函数的不支持问题解读》接手项目后,为了实现多租户功能,引入了Mybatis-plus,发现之前运行正常的SQL语句报错,原因是Mybatis不支持MySQL的if函... 目录MyBATis对mysql if 函数的不支持问题描述经过查询网上搜索资料找到原因解决方案总结Myb

C#如何在Excel文档中获取分页信息

《C#如何在Excel文档中获取分页信息》在日常工作中,我们经常需要处理大量的Excel数据,本文将深入探讨如何利用Spire.XLSfor.NET,高效准确地获取Excel文档中的分页信息,包括水平... 目录理解Excel中的分页机制借助 Spire.XLS for .NET 获取分页信息为什么选择 S

springboot3.x使用@NacosValue无法获取配置信息的解决过程

《springboot3.x使用@NacosValue无法获取配置信息的解决过程》在SpringBoot3.x中升级Nacos依赖后,使用@NacosValue无法动态获取配置,通过引入SpringC... 目录一、python问题描述二、解决方案总结一、问题描述springboot从2android.x

Python容器转换与共有函数举例详解

《Python容器转换与共有函数举例详解》Python容器是Python编程语言中非常基础且重要的概念,它们提供了数据的存储和组织方式,下面:本文主要介绍Python容器转换与共有函数的相关资料,... 目录python容器转换与共有函数详解一、容器类型概览二、容器类型转换1. 基本容器转换2. 高级转换示

springboot的controller中如何获取applicatim.yml的配置值

《springboot的controller中如何获取applicatim.yml的配置值》本文介绍了在SpringBoot的Controller中获取application.yml配置值的四种方式,... 目录1. 使用@Value注解(最常用)application.yml 配置Controller 中

C语言逗号运算符和逗号表达式的使用小结

《C语言逗号运算符和逗号表达式的使用小结》本文详细介绍了C语言中的逗号运算符和逗号表达式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接其一般形式为:表达

Go语言实现桥接模式

《Go语言实现桥接模式》桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化,本文就来介绍一下了Go语言实现桥接模式,感兴趣的可以了解一下... 目录简介核心概念为什么使用桥接模式?应用场景案例分析步骤一:定义实现接口步骤二:创建具体实现类步骤三:定义抽象类步骤四:创建扩展抽象类步