<C/C++>日期和时间的使用(time相关函数大全)

1、·函数详解及示例

1-  time_t time(time_t *time);
1)功能:获取或设置系统时间。
2)参数:若给定参数,则将当前时间保存到该参数中;若不给定参数,参数填NULL。

3)返回值:返回当前日历时间。自1970-01-01到目前的秒数。

4)说明:time_t可以理解为long类型。

例:

/* time() */
#include <stdio.h>
#include <time.h>int main(void)
{time_t t = time(NULL);	// 等价于:time_t t; time(&t);printf("1970--now的秒数:%ld\n", t);return 0;
}

2-  char *ctime(const time_t *time);

1)功能:将日期和时间转换为字符串。

2)参数:要转换的日期和时间。

3)返回值:表示当地时间的字符串。

4)说明:参数一般使用time()函数获取的时间。

例:

/* ctime() */
#include <stdio.h>
#include <time.h>int main(void)
{time_t t;time(&t);printf("Current time:%s", ctime(&t));return 0;
}

3、struct tm *localtime(const time_t *timer);

1)功能:获取结构体格式的系统时间。

2)参数:timer为要转换的时间。

3)返回值:指向结构体tm的指针,该结构体信息被timer填充。

4)说明:返回值需要用asctime()函数来转换才能输出。

例:

/* localtime() */
#include <stdio.h>
#include <time.h>int main(void)
{time_t t;time(&t);struct tm *time_info = localtime(&t);printf("Current-Local time:%s", asctime(time_info));return 0;
}

4-  char *asctime(const struct tm *time);

1)功能:将给定的日期和时间转换为ASCII码。

2)参数:要转换的tm结构体类型的时间格式。

3)返回值:指向一个字符串的指针,该字符串包含tm结构体信息。

4)说明:

例:

/* asctime() */
#include <stdio.h>
#include <time.h>int main(void)
{struct tm t;// 设置时间t.tm_sec = 10;	// 秒t.tm_min = 18;	// 分t.tm_hour = 7;	// 时t.tm_mday = 16;	// 日t.tm_mon = 6;	// 月t.tm_year = 117;	// 年(与1900年相差值)t.tm_wday = 5;	// 星期(以周日算起)printf("The time which i set:%s", asctime(&t));return 0;
}

5-  clock_t clock(void);

1)功能:计算程序运行时间。

2)参数:无。

3)返回值:该程序执行起,处理器时钟所使用的时间。失败返回-1。

4)说明:clock_t可以理解为long类型。若要获取CPU所使用的秒数,需要将结果除以CLOCKS_PER_SEC。

例:

/* gmtime() */
#include <stdio.h>
#include <time.h>int main(void)
{clock_t t1, t2;t1 = clock();	//for循环开始前printf("start:%ld\n", t1);for (int i=0; i<10000000; i++){}t2 = clock();	//for循环结束printf("end:%ld\n", t2);double t = (double)(t2-t1)/CLOCKS_PER_SEC;printf("for循环CPU所经过的秒数:%lf\n", t);return 0;
}

6-  struct tm *gmtime(const time_t *time);

1)功能:将给点的日期和时间转换为格林尼治标准时间(GMT)。

2)参数:要转换的时间。

3)返回值:格林尼治标准时间格式的时间。

4)说明:

例:

/* gmtime() */
#include <stdio.h>
#include <time.h>int main(void)
{time_t t;struct tm *time_info;time(&t);time_info = gmtime(&t);printf("GMT时间:\n");printf("时:%02d\n", time_info->tm_hour);printf("分:%02d\n", time_info->tm_min);printf("秒:%02d\n", time_info->tm_sec);return 0;
}

7-  time_t mktime(struct tm *timeptr);
1)功能:将参数timeptr所指的tm结构数据转换成从公元1970年1月1日0时0分0 秒算起至今的UTC时间所经过的秒数。

2)参数:tm结构体类型。

3)返回值:秒数。

4)说明:与localtime功能相反。

例:

/* mktime() */
#include <stdio.h>
#include <time.h>int main()
{time_t t;time(&t);printf("time函数获取的秒数: %ld\n", t);// 转换过程struct tm *time_info = localtime(&t);t = mktime(time_info);printf("time->localtime->mktime转换后的秒数:%ld\n", t);return 0;
}

8-  double difftime(time_t time2, time_t time1);
1)功能:计算两个时刻之间的时间差。
2)参数:两个time_t 类型的时间值。
3)返回值:时间差值。
4)说明:
例:

/* difftime() */
#include <stdio.h>
#include <time.h>
#include <unistd.h>	// sleep()int main()
{time_t t1 = time(NULL); // 等价于time_t t1; time(&t1);sleep(1);	// 休眠/延时1秒time_t t2 = time(NULL);double result = difftime(t2, t1);printf("差值:%.2lf\n", result);return 0;
}

9-  size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr);

1)功能:按格式format格式化结构体类型的时间。

2)参数:①str:指向目标数组的指针,用来复制产生的字符串。②maxsize:复制到str的最大字节数。③format:格式。④timeptr:指向tm结构体的指针。

3)返回值:若产生的字符串小于size个字符,返回复制到str中国的字符总数,否则返回0。

4)说明:format格式:

 

/* strftime() */
#include <stdio.h>
#include <time.h>int main(void)
{time_t t = time(NULL);struct tm *time_info = localtime(&t);char buf[60] = {};strftime(buf, 60, "%x %I:%M%p", time_info);printf("格式化后的时间:%s\n", buf);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/77692.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RTT(RT-Thread)时钟管理

目录 时钟管理 时钟节拍 RTT工程目录结构介绍 配置文件&#xff1a;rtconfig.h 获取系统节拍 获取系统节拍数函数 实例 定时器 RT_Thread定时器介绍 定时器源码分析&#xff08;了解即可&#xff09; rt_system_timer_init (硬件定时器初始化) rt_system_timer_thr…

pycharm出现python test运行报错(pytest模式)

pycharm出现python test运行报错 一、python test 执行代码报错二、删除运行配置三、修改pycharm默认配置为 unittests四、成功&#xff01; 一、python test 执行代码报错 二、删除运行配置 三、修改pycharm默认配置为 unittests 四、成功&#xff01;

怎么修改pdf文件中的文字?分享几种编辑方法

怎么修改pdf文件中的文字&#xff1f;PDF格式的文件通常具有很高的可读性和稳定性&#xff0c;但是如果需要修改其中的文字&#xff0c;就需要使用专门的PDF编辑器。本文将介绍几种PDF编辑的方法&#xff0c;下面就跟着我一起来看看这几款工具吧。 方法一&#xff1a;使用迅捷P…

python爬虫1:基础知识

python爬虫1&#xff1a;基础知识 前言 ​ python实现网络爬虫非常简单&#xff0c;只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点&#xff0c;方便以后复习。 目录结构 文章目录 python爬虫1&#xff1a;基础知识1. 基础认知1.1 什么是爬虫&…

servlet生命周期和初始化参数传递

servlet生命周期和初始化参数传递 1、servlet生命周期 只有第一次访问才会初始化&#xff0c;之后访问都只执行service中的。 除非tomcat关闭重新启动&#xff1a; 2、初始化参数传递

Rust 编程小技巧摘选(6)

目录 Rust 编程小技巧(6) 1. 打印字符串 2. 重复打印字串 3. 自定义函数 4. 遍历动态数组 5. 遍历二维数组 6. 同时遍历索引和值 7. 迭代器方法的区别 8. for_each() 用法 9. 分离奇数和偶数 10. 判断素数&#xff08;质数&#xff09; Rust 编程小技巧(6) 1. 打印…

SpringBoot+Vue 实现图片验证码功能需求

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 前言 写过验证码保存到Redis中的需求开发、也写过验证码调用第三方接口…

阿里云瑶池 PolarDB 开源官网焕新升级上线

导读近日&#xff0c;阿里云开源云原生数据库 PolarDB 官方网站全新升级上线。作为 PolarDB 开源项目与开发者、生态伙伴、用户沟通的平台&#xff0c;将以开放、共享、促进交流为宗旨&#xff0c;打造开放多元的环境&#xff0c;以实现共享共赢的目标。 立即体验全新官网&…

MacOS上配置docker国内镜像仓库地址

背景 docker官方镜像仓库网速较差&#xff0c;我们需要设置国内镜像服务 我的MacOS docker版本如下 设置docker国内镜像仓库地址 点击Settings点击Docker Engine修改配置文件&#xff0c;添加registry-mirrors {"builder": {"gc": {"defaultKeepS…

IDEA基础使用

IDEA基础使用 1、IDEA中显示用法和用户截图展示有调用显示无调用显示 对应方法 2、如何找出项目中所有不被调用方法截图展示对应方法 3、常用代码(Code)说明及快捷键:4、未完待续待日后更新。。。总结&#xff1a;欢迎指导&#xff0c;也祝码友们代码越来越棒&#xff0c;技术越…

SpringCloud Gateway获取请求响应body大小

前提 本文获取请求、响应body大小方法的前提 : 网关只做转发逻辑&#xff0c;不修改请求、相应的body内容。 SpringCloud Gateway内部的机制类似下图&#xff0c;HttpServer&#xff08;也就是NettyServer&#xff09;接收外部的请求&#xff0c;在Gateway内部请求将会通过Htt…

五、JVM-垃圾回收算法

常见的回收算法&#xff1a;标记清除算法、复制算法、标记-整理算法、分代收集算法 1、标记清除算法 第一步&#xff1a;标记&#xff08;找出内存中需要回收的对象&#xff0c;并且把它们标记出来&#xff09; 第二步&#xff1a;清除 &#xff08;清除掉被标记需要回收的对…

Windows下JDK安装与环境变量配置

文章目录 每日一句正能量前言安装步骤配置环境变量验证环境变量是否配置成功后记 每日一句正能量 生命,就像一场永无休止的苦役,不要惧怕和拒绝困苦,超越困苦,就是生活的强者。任何经历都是一种累积,累积的越多,人就越成熟;经历的越多,生命就越有厚度。 本来不想写JDK的安装的&…

全国高校招投标信息在哪里看?

很多投标人在查询招标信息的时候常常没有找到合适的&#xff0c;但是现在网上查询投标信息的网站是很多的。而学校招标信息获取的渠道是比较少的&#xff0c;企业的反而更多一些&#xff0c;那么我们能在那些渠道获取这些信息&#xff1f; 1.教育部网站 教育部提供了招标信息…

8.Winform界面打包成DLL提供给其他的项目使用

背景 希望集成一个Winform的框架&#xff0c;提供权限菜单&#xff0c;根据权限出现各个Winform子系统的菜单界面。不希望把所有的界面都放放在同一个解决方案下面。用各个子系统建立不同的解决方案&#xff0c;建立代码仓库&#xff0c;进行管理。 实现方式 将Winform的UI界…

微信小程序页面传值为对象[Object Object]详解

微信小程序页面传值为对象[Object Object]详解 1、先将传递的对象转化为JSON字符串拼接到url上2、在接受对象页面进行转译3、打印结果 1、先将传递的对象转化为JSON字符串拼接到url上 // info为对象 let stationInfo JSON.stringify(info) uni.navigateTo({url: /pages/statio…

开源进展 | WeBASE v3.1.0发布,新增多个实用特性

WeBASE是一个友好、功能丰富的区块链中间件平台&#xff0c;通过一系列通用功能组件和实用工具&#xff0c;助力社区开发者更快捷地与区块链进行交互。 目前WeBASE已更新迭代至v3.1.0版本&#xff0c;本次更新中&#xff0c;WeBASE带来了最新的合约Java脚手架导出功能&#xff…

Python爬虫的学习day02 requests 模块post 函数, lmxl 模块的 etree 模块

1. requests 模块post 函数 1.1 post 函数的参数 &#xff08;简单版&#xff09; 参数1&#xff1a; url 网络地址 参数2&#xff1a; data 请求数据 &#xff08;一般数据是 账号&#xff0c;密码&#xff09; 参数3&#xff1a; headers 头请求 &#xff08…

2023年华数杯数学建模C题思路 - 母亲身心健康对婴儿成长的影响

# 1 赛题 C 题 母亲身心健康对婴儿成长的影响 母亲是婴儿生命中最重要的人之一&#xff0c;她不仅为婴儿提供营养物质和身体保护&#xff0c; 还为婴儿提供情感支持和安全感。母亲心理健康状态的不良状况&#xff0c;如抑郁、焦虑、 压力等&#xff0c;可能会对婴儿的认知、情…

SolidWorks 3D Interconnect介绍

目前市面上有的三维设计软件有很多&#xff0c;如UG、Pro/E、CATIA等&#xff0c;而且每个三维设计软件都会生成自己文件格式。由于产品设计的原因&#xff0c;我们避免不了的会需要去使用不同三维设计软件的文件&#xff0c;这对于工程师来说其实是一件比较麻烦的事。 为什么…