当前位置: 首页 > news >正文

C/C++时间获取函数

time.h包含C/C++中用于获取时间,和时间转换方面的函数。

1、time()

函数 time_t time(time_t *seconds) 返回自(1970-01-01 00:00:00 UTC)起经过的时间,以秒为单位。如果 seconds 不为空,则返回值也存储在变量 seconds 中。

例子:

#include <stdio.h>
#include <time.h>int main ()
{time_t seconds;seconds = time(NULL);printf("自 1970-01-01 起经过的小时数 = %ldn", seconds/3600);return(0);
}

结果:

自 1970-01-01 起的小时数 = 3757678

2、localtime()

struct tm *localtime(const time_t *timer) 使用 timer 的值来填充 tm 结构。timer 的值被分解为 tm 结构,并用本地时区表示

  • struct 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                */int tm_year;        /* 自 1900 起的年数                */int tm_wday;        /* 一周中的第几天,范围从 0 到 6                */int tm_yday;        /* 一年中的第几天,范围从 0 到 365                    */int tm_isdst;       /* 夏令时                        */    
};

例子 1:

#include <stdio.h>
#include <time.h>int main ()
{time_t rawtime;struct tm *info;char buffer[80];time( &rawtime );info = localtime( &rawtime );printf("当前的本地时间和日期:%s", asctime(info));return(0);
}

结果:

当前的本地时间和日期:Thu Aug 23 09:12:05 2012

例子 2:

// 将时间戳,以时间字符串形式输出std::string timetToString(time_t tt) {auto tm = localtime(&tt);std::stringstream ss;ss << tm->tm_year + 1900 << std::setw(2) << std::setfill('0')<< tm->tm_mon + 1 << std::setw(2) << std::setfill('0') << tm->tm_mday<< std::setw(2) << std::setfill('0') << tm->tm_hour << std::setw(2)<< std::setfill('0') << tm->tm_min << std::setw(2) << std::setfill('0')<< tm->tm_sec;return ss.str();
}

3、mktime()

time_t mktime(struct tm *timeptr) 把 timeptr 所指向的结构转换为一个依据本地时区的 time_t 值。

例子:

/* 输入日期判断是周几 */
#include <stdio.h>      /* printf, scanf */
#include <time.h>       /* time_t, struct tm, time, mktime */int main ()
{time_t rawtime;struct tm * timeinfo;int year, month ,day;const char * weekday[] = { "周日", "周一","周二", "周三","周四", "周五", "周六"};/* 用户输入日期 */printf ("年: "); fflush(stdout); scanf ("%d",&year);printf ("月: "); fflush(stdout); scanf ("%d",&month);printf ("日: "); fflush(stdout); scanf ("%d",&day);/* 获取当前时间信息,并修改用户输入的输入信息 */time ( &rawtime );timeinfo = localtime ( &rawtime );timeinfo->tm_year = year - 1900;timeinfo->tm_mon = month - 1;timeinfo->tm_mday = day;/* 调用 mktime: timeinfo->tm_wday  */mktime ( timeinfo );printf ("那一天是:%sn", weekday[timeinfo->tm_wday]);return 0;
}

结果:

年: 2023
月: 8
日: 14
那一天是:周一

4、gmtime()

struct tm *gmtime(const time_t *timer) 使用 timer 的值来填充 tm 结构,并用协调世界时(UTC)也被称为格林尼治标准时间(GMT)表示。北京时间需要在此值的基础上加8小时。

例子:

#include <stdio.h>
#include <time.h>#define BST (+1)
#define CCT (+8)int main ()
{time_t rawtime;struct tm *info;time(&rawtime);/* 获取 GMT 时间 */info = gmtime(&rawtime );printf("当前的世界时钟:n");printf("伦敦:%2d:%02dn", (info->tm_hour+BST)%24, info->tm_min);printf("中国:%2d:%02dn", (info->tm_hour+CCT)%24, info->tm_min);return(0);
}

结果:

当前的世界时钟:
伦敦:14:10
中国:21:10

相关文章:

C/C++时间获取函数

time.h包含C/C中用于获取时间&#xff0c;和时间转换方面的函数。 1、time() 函数 time_t time(time_t *seconds) 返回自&#xff08;1970-01-01 00:00:00 UTC&#xff09;起经过的时间&#xff0c;以秒为单位。如果 seconds 不为空&#xff0c;则返回值也存储在变量 seconds …...

sql中判断日期是否是同一天

sql中判断日期是否是同一天的sql sql: select id,product_id,seckill_price,stock_count,time,intergral,start_date from t_seckill_product where to_days(start_date) to_days(now()) to_days函数&#xff1a; 使用to_days(start_date) to_days(now())的方式是一种常见的…...

NAS搭建指南一——服务器的选择与搭建

一、服务器的选择 有自己的本地的公网 IP 的请跳过此篇文章按需求选择一个云服务器&#xff0c;目的就是为了进行 frp 的搭建&#xff0c;完成内网穿透我选择的是腾讯云服务器&#xff0c;我的配置如下&#xff0c;仅供参考&#xff1a; 4. 腾讯云服务器官网地址 二、服务器…...

豪越HYDO智能运维助力智慧医院信息化建设

随着国家政策的推动与支持&#xff0c;医疗行业信息化应用不断普及&#xff0c;大数据、AI、医疗物联网等技术的应用&#xff0c;快速推动了电子病历、智慧服务、智慧管理的智慧医院建设和医院信息标准化建设&#xff0c;通过不断探索创新“智慧医院”服务模式&#xff0c;实现…...

Week1题目重刷

今天把week1的题目都重新刷了一遍&#xff0c;明天开始week2的内容~ 704.二分查找 class Solution {public int search(int[] nums, int target) {int l 0, r nums.length - 1, m;while (l < r) {m (l r) >>> 1;if (nums[m] < target) {l m 1;} else if…...

考研数据结构:第七章 查找

文章目录 一、查找的基本概念二、顺序查找和折半查找2.1顺序查找2.3折半查找2.3.1算法思想2.3.2代码实现2.3.3查找效率分析2.3.4折半查找判定树的构造2.3.5折半查找效率2.3.6小结 2.4分块查找 三、树形查找3.1二叉排序树3.1.1二叉排序树定义3.1.2查找操作3.1.3插入操作3.1.4二叉…...

【Linux进程篇】环境变量

【Linux进程篇】环境变量 目录 【Linux进程篇】环境变量基本概念常见环境变量查看环境变量方法测试PATH测试HOME测试SHELL和环境变量相关的命令环境变量的组织方式通过代码如何获取环境变量命令行参数命令行第三个参数通过第三方变量environ获取 本地变量通过系统调用获取或设置…...

【软件测试】Linux环境下Docker搭建+Docker搭建MySQL服务(详细)

目录&#xff1a;导读 前言 一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Linux之docker搭…...

去了字节跳动,才知道年薪40W的测试有这么多?

今年大环境不好&#xff0c;内卷的厉害&#xff0c;薪资待遇好的工作机会更是难得。最近脉脉职言区有一条讨论火了&#xff1a; 哪家互联网公司薪资最‘厉害’&#xff1f; 下面的评论多为字节跳动&#xff0c;还炸出了很多年薪40W的测试工程师 我只想问一句&#xff0c;现在的…...

linux0.95(VFS重点)源码通俗解读(施工中)

文件系统在磁盘中的体现 下面是磁盘的内容&#xff0c;其中i节点就是一个inode数组&#xff0c;逻辑块就是数据块可用于存放数据 操作系统通过将磁盘数据读入到内存中指定的缓冲区块来与磁盘交互&#xff0c;对内存中的缓冲区块修改后写回磁盘。 进程(task_struct * task[N…...

mac ssh连接另一台window虚拟机vm

vmware配置端口映射 编辑(E) > 虚拟网络编辑器(N)... > NAT设置(S)... window防火墙&#xff0c;入站规则添加5555端口 控制面板 > 系统和安全 > Windows 防火墙>高级设置>入站规则>新建规则... tips windows查看端口命令&#xff1a;netstat -ano | f…...

使用Python解析通达信本地lday数据结构

通达信软件中的vipdoc是一个存储股票行情数据的文件夹。在通达信软件的安装目录下&#xff0c;可以找到一个名为vipdoc的文件夹&#xff0c;里面存放着各个股票的分时、日线、周线、月线等行情数据文件。这些数据文件可以用于自定义分析和回测股票的走势和交易策略&#xff0c;…...

【Mysql】修改definer

修改definer 本文介绍如何修改MySQL中的function、procedure、event、view和trigger的definer 修改function、procedure的definer 首先&#xff0c;我们需要登录MySQL命令行界面&#xff0c;然后执行以下命令&#xff1a; select definer from mysql.proc;这个命令会列出所…...

图片预览插件vue-photo-preview的使用

移动端项目中需要图片预览的功能&#xff0c;但本身使用mintui&#xff0c;vantui中虽然也有&#xff0c;但是为了一个组件安装这个有点儿多余&#xff0c;就选用了vue-photo-preview插件实现&#xff08;其实偷懒也不想自己写&#xff09;。 1、安装 npm i vue-photo-preview…...

最强自动化测试框架Playwright(20)- iframe

一个页面可以附加一个或多个 Frame 对象。每个页面都有一个主框架&#xff0c;并且假定页面级交互&#xff08;如&#xff09;在主框架中运行。click frame_locator 使用 iframe 时&#xff0c;可以创建一个框架定位器&#xff0c;该定位器将进入 iframe 并允许选择该 iframe…...

leetcode 516. 最长回文子序列(JAVA)题解

题目链接https://leetcode.cn/problems/longest-palindromic-subsequence/description/?utm_sourceLCUS&utm_mediumip_redirect&utm_campaigntransfer2china 目录 题目描述&#xff1a; 暴力递归&#xff1a; 动态规划&#xff1a; 题目描述&#xff1a; 给你一个…...

在Java中操作Redis(详细-->从环境配置到代码实现)

在Java中操作Redis 文章目录 在Java中操作Redis1、介绍2、Jedis3、Spring Data Redis3.1、对String的操作3.2、对哈希类型数据的操作3.3、对list的操作3.4、对set类型的操作3.5、对 ZSet类型的数据&#xff08;有序集合&#xff09;3.6、通用类型的操作 1、介绍 Redis 的Java客…...

分布式作业调度框架——ElasticJob

1、简介 ElasticJob 是面向互联网生态和海量任务的分布式调度解决方案&#xff0c;由两个相互独立的子项目 ElasticJob-Lite 和 ElasticJob-Cloud 组成。 它通过弹性调度、资源管控、以及作业治理的功能&#xff0c;打造一个适用于互联网场景的分布式调度解决方案&#xff0c;…...

react如何实现数据渲染

React数据渲染是指将组件中的数据映射到页面上&#xff0c;以展示出来。在React中&#xff0c;数据渲染通常是通过JSX和组件的state或props完成的。 JSX是一个类似HTML的语法&#xff0c;可以在其中嵌入JavaScript表达式。在JSX中&#xff0c;可以使用{}包裹JavaScript表达式&…...

在Java中如何使用List集合实现分页,以及模糊查询后分页

物理分页工具类 package com.yutu.garden.utils;import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors;/*** ClassName: PageUtils* Description: 物理分页* Author* Date …...

Gemma-3-12b-it开源大模型教程:Transformers + PIL + Gradio全栈整合

Gemma-3-12b-it开源大模型教程&#xff1a;Transformers PIL Gradio全栈整合 1. 项目概述 Gemma-3-12b-it是一个基于Google最新开源大模型的多模态交互工具&#xff0c;专为本地化部署设计。这个工具将强大的12B参数大模型与直观的用户界面相结合&#xff0c;让开发者能够轻…...

机械设计行业SolidWorks许可证资源池化共享分点方案

SolidWorks许可证资源池化共享&#xff0c;真的不光是“打游戏占号”你是不光是也总归撞上这种场景&#xff1f;项目上线前一晚&#xff0c;全部工程师全在争抢SolidWorks许可证&#xff0c;结果有人抢到了&#xff0c;有人还要靠“临时借”拿个“邮件恳求”的结果。可你抬头看…...

OpenClawAPI封装:将SecGPT-14B能力集成到现有安全工具链

OpenClaw API封装&#xff1a;将SecGPT-14B能力集成到现有安全工具链 1. 为什么需要API封装 去年我在构建自动化安全审计系统时&#xff0c;发现很多团队面临一个共同困境&#xff1a;虽然本地部署了大模型&#xff0c;但模型能力始终无法真正融入现有工作流。SecGPT-14B作为…...

800V高压机柜来袭,两相液冷为何成了“刚需“?

800V高压机柜来袭&#xff0c;两相液冷为何成了"刚需"&#xff1f;当一个机柜的功率突破120kW&#xff0c;传统散热方案正在触及物理天花板。2025年GTC大会上&#xff0c;英伟达抛出了一颗"深水炸弹"&#xff1a;从2027年起&#xff0c;数据中心电力基础设…...

【PHP低代码表单安全生死线】:92%开发者忽略的3类注入漏洞(含OWASP Top 10映射表+自动检测脚本)

第一章&#xff1a;PHP低代码表单安全生死线总览在低代码开发范式下&#xff0c;PHP 表单常被封装为可拖拽、自动生成的组件&#xff0c;但其底层仍依赖 $_POST、$_GET 等超全局变量接收用户输入。这种便利性极易掩盖注入、XSS、CSRF 和越权提交等高危风险——一条未过滤的 $_P…...

OpenClaw硬件配置建议:流畅运行Qwen2.5-VL-7B的电脑要求

OpenClaw硬件配置建议&#xff1a;流畅运行Qwen2.5-VL-7B的电脑要求 1. 为什么需要关注硬件配置&#xff1f; 去年夏天&#xff0c;我第一次尝试在MacBook Pro上部署OpenClaw对接Qwen2.5-VL-7B模型时&#xff0c;经历了长达3小时的"烤机"体验——风扇狂转、机身发烫…...

嵌入式开发必备终端工具与效率提升技巧

1. 项目概述作为一名在嵌入式领域摸爬滚打十多年的老工程师&#xff0c;我深知终端工具对开发效率的决定性影响。今天要分享的这些"终端神器"&#xff0c;都是我在实际项目中反复验证过的效率加速器。它们不是那些花里胡哨的新潮工具&#xff0c;而是经过时间考验的实…...

SparkFun Qwiic OLED Arduino图形库深度解析

1. 项目概述 SparkFun Qwiic OLED Arduino Library 是一个面向嵌入式显示应用的轻量级、高效率图形驱动库&#xff0c;专为 SparkFun 全系列基于 SSD1306 控制器的 Qwiic 接口 OLED 模块设计。该库并非简单封装&#xff0c;而是从底层硬件抽象层出发&#xff0c;重构了图形渲染…...

重新定义翻译质量评估:COMET的智能引擎与行业变革

重新定义翻译质量评估&#xff1a;COMET的智能引擎与行业变革 【免费下载链接】COMET A Neural Framework for MT Evaluation 项目地址: https://gitcode.com/gh_mirrors/com/COMET 在全球化内容生产的浪潮中&#xff0c;翻译质量评估长期被一个认知误区所困扰——许多…...

如何处理死锁异常_ORA-00060捕获与重试机制设计

ORA-00060是死锁&#xff0c;非单纯竞争&#xff1b;Oracle检测到多个会话互持对方所需锁并主动回滚其中一个事务&#xff0c;需通过trace文件分析Deadlock graph定位具体行锁冲突及session&#xff0c;不可盲目重试。ORA-00060 是死锁还是竞争&#xff1f;先看日志里真正冲突的…...