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

C++ 教程(19)——日期 时间

C++ 日期 & 时间

C++ 标准库没有提供所谓的日期类型。C++ 继承了 C 语言用于日期和时间操作的结构和函数。为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 <ctime> 头文件。

有四个与时间相关的类型:clock_t、time_t、size_t 和 tm。类型 clock_t、size_t 和 time_t 能够把系统时间和日期表示为某种整数。

结构类型 tm 把日期和时间以 C 结构的形式保存,tm 结构的定义如下:

struct tm {

int tm_sec; // 秒,正常范围从 0 到 59,但允许至 61

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,从 1 月 1 日算起

int tm_isdst; // 夏令时

};

下面是 C/C++ 中关于日期和时间的重要函数。所有这些函数都是 C/C++ 标准库的组成部分,您可以在 C++ 标准库中查看一下各个函数的细节。

序号函数 & 描述
1time_t time(time_t *time);
该函数返回系统的当前日历时间,自 1970 年 1 月 1 日以来经过的秒数。如果系统没有时间,则返回 -1。
2char *ctime(const time_t *time);
该返回一个表示当地时间的字符串指针,字符串形式 day month year hours:minutes:seconds year\n\0
3struct tm *localtime(const time_t *time);
该函数返回一个指向表示本地时间的 tm 结构的指针。
4clock_t clock(void);
该函数返回程序执行起(一般为程序的开头),处理器时钟所使用的时间。如果时间不可用,则返回 -1。
5char * asctime ( const struct tm * time );
该函数返回一个指向字符串的指针,字符串包含了 time 所指向结构中存储的信息,返回形式为:day month date hours:minutes:seconds year\n\0。
6struct tm *gmtime(const time_t *time);
该函数返回一个指向 time 的指针,time 为 tm 结构,用协调世界时(UTC)也被称为格林尼治标准时间(GMT)表示。
7time_t mktime(struct tm *time);
该函数返回日历时间,相当于 time 所指向结构中存储的时间。
8double difftime ( time_t time2, time_t time1 );
该函数返回 time1 和 time2 之间相差的秒数。
9size_t strftime();
该函数可用于格式化日期和时间为指定的格式。

当前日期和时间

下面的实例获取当前系统的日期和时间,包括本地时间和协调世界时(UTC)。

实例

#include <iostream>

#include <ctime>

using namespace std;

int main( )

{

// 基于当前系统的当前日期/时间

time_t now = time(0);

// 把 now 转换为字符串形式

char* dt = ctime(&now);

cout << "本地日期和时间:" << dt << endl;

// 把 now 转换为 tm 结构

tm *gmtm = gmtime(&now);

dt = asctime(gmtm);

cout << "UTC 日期和时间:"<< dt << endl;

}

当上面的代码被编译和执行时,它会产生下列结果:

本地日期和时间:Sat Jan  8 20:07:41 2011UTC 日期和时间:Sun Jan  9 03:07:41 2011

使用结构 tm 格式化时间

tm 结构在 C/C++ 中处理日期和时间相关的操作时,显得尤为重要。tm 结构以 C 结构的形式保存日期和时间。大多数与时间相关的函数都使用了 tm 结构。下面的实例使用了 tm 结构和各种与日期和时间相关的函数。

在练习使用结构之前,需要对 C 结构有基本的了解,并懂得如何使用箭头 -> 运算符来访问结构成员。

实例

#include <iostream>

#include <ctime>

using namespace std; int main( )

{

// 基于当前系统的当前日期/时间

time_t now = time(0);

cout << "1970 到目前经过秒数:" << now << endl;

tm *ltm = localtime(&now);

// 输出 tm 结构的各个组成部分

cout << "年: "<< 1900 + ltm->tm_year << endl;

cout << "月: "<< 1 + ltm->tm_mon<< endl;

cout << "日: "<< ltm->tm_mday << endl;

cout << "时间: "<< ltm->tm_hour << ":";

cout << ltm->tm_min << ":"; cout << ltm->tm_sec << endl;

}

相关文章:

C++ 教程(19)——日期 时间

C 日期 & 时间 C 标准库没有提供所谓的日期类型。C 继承了 C 语言用于日期和时间操作的结构和函数。为了使用日期和时间相关的函数和结构&#xff0c;需要在 C 程序中引用 <ctime> 头文件。 有四个与时间相关的类型&#xff1a;clock_t、time_t、size_t 和 tm。类型…...

React 应用 Effect Hook 函数式中操作生命周期

React Hook入门小案例 在函数式组件中使用state响应式数据给大家演示了最简单的 Hook操作 那么 我们继续 首先 Hook官方介绍 他没有破坏性是完全可选的 百分比兼容 也就说 我们一起的 类 class的方式也完全可以用 只要 react 16,8以上就可以使用 Hook本身不会影响你的react的理…...

C代码程序实现扫雷游戏纯代码版本

//test.c文件 #define _CRT_SECURE_NO_WARNINGS 1#include "game.h"void menu() {printf("***********************\n");printf("***** 1. play *****\n");printf("***** 0. exit *****\n");printf("*******************…...

ai代写---怎么在ubutnu服务器中安装mqtt

在Ubuntu服务器中安装MQTT Broker可以使用Mosquitto&#xff0c;它是一个开源的MQTT Broker实现&#xff0c;支持Linux、Windows和MacOS等多个平台。 以下是在Ubuntu服务器中安装Mosquitto的步骤&#xff1a; 更新apt-get包列表 打开终端&#xff0c;执行以下命令更新apt-get…...

【设计模式与范式:行为型】63 | 职责链模式(下):框架中常用的过滤器、拦截器是如何实现的?

上一节课&#xff0c;我们学习职责链模式的原理与实现&#xff0c;并且通过一个敏感词过滤框架的例子&#xff0c;展示了职责链模式的设计意图。本质上来说&#xff0c;它跟大部分设计模式一样&#xff0c;都是为了解耦代码&#xff0c;应对代码的复杂性&#xff0c;让代码满足…...

Kendo UI for jQuery---03.组件___网格---02.开始

网格入门 本指南演示了如何启动和运行 Kendo UI for jQuery Grid。 完成本指南后&#xff0c;您将能够实现以下最终结果&#xff1a; 1. 创建一个空的 div 元素 首先&#xff0c;在页面上创建一个空元素&#xff0c;该元素将用作 Grid 组件的主容器。 <div id"my-…...

初识Telegraf、InfluxDB和Grafana铁三角形成的监控可视化解决方案

文章目录 前言原始的监控靠人盯进化的监控靠批处理脚本高端的监控靠完整的可视化解决方案Telegraf、InfluxDB和Grafana铁三角TelegrafInfluxDBGrafana Grafana仪表板展示服务器资源总览负载和内存使用网络带宽磁盘IOIO延迟其他指标进程信息 总结 前言 数据监控目前用于各行各业…...

【哈佛积极心理学笔记】第20课 幸福与幽默

第20课 幸福与幽默 The vanguard of the positive psychology revolution: Our brain is basically a single processor, capable of consciouly choosing to devote resources either to the pain and suffering on one side, or viewing the world that lens of something l…...

设计模式-责任链模式

责任链模式 请求发送者和接收者连接成一条链&#xff0c;一个对象处理完&#xff0c;交给下一位&#xff0c;沿着链传递请求&#xff0c;这就是责任链模式。 角色 抽象处理者&#xff08;Handler&#xff09; 定义了处理请求的方法具体处理者&#xff08;ContreteHandler&am…...

不变的是需求,变化的是解决方法和工具:探讨iPaaS与ESB的差异

在企业数字化转型过程中&#xff0c;企业需要面临日益复杂的业务和数据集成挑战。为了应对这些挑战&#xff0c;需要借助适当的解决方法和工具来实现系统间的通信和数据传输。在这方面&#xff0c;iPaaS&#xff08;Integration Platform as a Service&#xff09;和ESB&#x…...

网络解析----faster rcnn

Faster R-CNN&#xff08;Region-based Convolutional Neural Network&#xff09;是一种基于区域的卷积神经网络用于目标检测任务的模型。它是一种两阶段的目标检测方法&#xff0c;主要包含以下几个步骤&#xff1a; Region Proposal Network&#xff08;RPN&#xff09;: F…...

modbus TCP协议讲解及实操

具体讲解 前言正文modbus tcp主机请求数据基本讲解Modbus Poll工具简单使用讲解 modbus tcp从机响应数据Modbus Slave工具简单使用讲解 前言 关于modbus tcp从0到1的讲解&#xff0c;案例结合讲解&#xff0c;详细了解整个modbus的可以参考这个&#xff1a;详解Modbus通信协议…...

既有内销又有外贸,多样性外贸业务管理解决方案

随着外贸数字化贸易全球化的深入发展&#xff0c;出口、进口、内销业务越来越受到关注。外贸业务是企业在海外市场进行商品贸易&#xff0c;而内销业务是企业在国内市场进行商品贸易。在管理这种业务时&#xff0c;想要实现降本增效&#xff0c;企业需要有一套成熟的管理解决方…...

spring eurake中使用IP注册

在开发spring cloud的时候遇到一个很奇葩的问题&#xff0c;就是服务向spring eureka中注册实例的时候使用的是机器名&#xff0c;然后出现localhost、xxx.xx等这样的内容&#xff0c;如下图&#xff1a; eureka.instance.perferIpAddresstrue 我不知道这朋友用的什么spring c…...

c# 从零到精通 form界面之listView控件

c# c# 从零到精通 form界面之listView控件 添加值 设置值 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace Test06 { public partial cla…...

Qt6.5.1+WebRTC学习笔记(十二)环境搭建流媒体服务器(ubuntu22.04+SRS)

前言 若只是实现一对一通信&#xff0c;仅使用webrtc就足够了。但有时间需要进行多个人的直播会议&#xff0c;当人比较多时&#xff0c;建议使用一个流媒体服务器&#xff0c;笔者使用的是SRS。 这个开源项目资料比较全&#xff0c;笔者仅在此记录下搭建过程 一、准备 1.操…...

LeetCode 9. 回文数

LeetCode 9. 回文数 一、题目描述&#xff1a; 给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 回文数是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左&#xff09;读都是一样的整数…...

Linux系统之部署Teleport堡垒机系统

Linux系统之部署Teleport堡垒机系统 一、Teleport介绍1.1 Teleport简介1.2 Teleport特点1.3 支持操作系统 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本 四、部署teleport服务端4.1 创建部署目录4.2 下载t…...

【二叉树part02】| 102.二叉树的层序遍历、226.翻转二叉树、101.对称二叉树

目录 ✿LeetCode102.二叉树的层序遍历❀ ✿LeetCode226.翻转二叉树❀ ✿LeetCode101.对称二叉树❀ ✿LeetCode102.二叉树的层序遍历❀ 链接&#xff1a;102.二叉树的层序遍历 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff…...

【干货】Android系统定制基础篇:第十五部分(Android支持鼠标右键返回、GPIO 控制方案、属性标识USB摄像头的VID与PID)

1、修改 frameworks/native/services/inputflinger/InputReader.cpp 如下&#xff1a; diff --git a/frameworks/native/services/inputflinger/InputReader.cpp b/frameworks/native/services/inputflinger/Inp index 7207a83..2721800 100755 --- a/frameworks/native/servi…...

Python+Mediamtx实战:5分钟搞定WebRTC视频流帧捕获(附完整代码)

PythonMediamtx实战&#xff1a;5分钟搞定WebRTC视频流帧捕获&#xff08;附完整代码&#xff09; 在实时视频处理领域&#xff0c;WebRTC技术因其低延迟和点对点传输特性而备受青睐。本文将带你快速搭建一个基于Mediamtx流媒体服务器和Python的WebRTC视频帧捕获系统&#xff0…...

基于策略模式与智能编排的抖音批量下载系统架构设计与实现

基于策略模式与智能编排的抖音批量下载系统架构设计与实现 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在当今内容驱动的互联网时代&#xff0c;抖音平台汇聚了海量的短视频内容。对于内容创作者、研究者…...

保姆级教程:在Win10上用Docker Desktop搞定Dify,再接入本地DeepSeek模型

保姆级教程&#xff1a;在Win10上用Docker Desktop搞定Dify&#xff0c;再接入本地DeepSeek模型 如果你是一位Windows 10用户&#xff0c;同时对AI应用开发充满兴趣&#xff0c;那么这篇教程就是为你量身定制的。我们将一步步带你完成Dify平台的部署&#xff0c;并将其与本地运…...

告别格式地狱:Paperxie 如何用智能排版让本科毕业论文一键通关

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AIPPThttps://www.paperxie.cn/format/typesettinghttps://www.paperxie.cn/format/typesetting 当毕业论文写到最后&#xff0c;你是否也陷入过这样的困境&#xff1a;明明内容已经打磨完成&#xff0c;却…...

新手必看,在快马平台上手mcp,从零理解模型上下文协议的核心机制

今天想和大家分享一个特别适合新手理解MCP&#xff08;模型上下文协议&#xff09;的小项目。作为一个刚接触AI开发不久的人&#xff0c;我发现在InsCode(快马)平台上学习这些概念特别方便&#xff0c;尤其是它能把复杂的协议用实际代码展示出来。 MCP简单来说就是AI模型和外部…...

BAAI/bge-m3应用案例:在文档检索系统中实现精准语义匹配

BAAI/bge-m3应用案例&#xff1a;在文档检索系统中实现精准语义匹配 1. 项目背景与核心价值 在当今信息爆炸的时代&#xff0c;企业和个人都面临着海量文档管理的挑战。传统的关键词搜索方式已经无法满足精准检索的需求&#xff0c;特别是在处理专业术语、同义词和跨语言文档…...

3D Face HRN在影视特效中的应用:快速制作数字替身面部模型

3D Face HRN在影视特效中的应用&#xff1a;快速制作数字替身面部模型 1. 引言&#xff1a;数字替身制作的技术革命 在影视特效制作中&#xff0c;数字替身的创建一直是一项耗时且昂贵的工作。传统方法需要演员进行复杂的3D扫描&#xff0c;使用昂贵的设备在专业工作室中完成…...

从.proto文件到gRPC服务:手把手教你用Protobuf 3.21.11构建跨语言API

从.proto文件到gRPC服务&#xff1a;Protobuf 3.21.11构建跨语言API实战指南 在微服务架构盛行的今天&#xff0c;不同语言编写的服务之间如何高效通信成为开发者必须面对的挑战。想象这样一个场景&#xff1a;你的Go语言后台服务需要与Python数据分析服务共享用户数据&#xf…...

Detectron2特征图热力可视化实战:从Faster R-CNN到自定义网络

1. 为什么需要特征图热力可视化 当你训练一个目标检测模型时&#xff0c;有没有遇到过这样的困惑&#xff1a;模型在某些场景下表现很好&#xff0c;但在另一些场景却频频出错&#xff1f;作为算法工程师&#xff0c;我们往往只能看到最终的检测结果&#xff0c;却不知道模型内…...

c++ 20 有什么新的功能

C20 是继 C11 之后最具革命性的 C 标准更新之一&#xff0c;引入了许多强大的新特性&#xff0c;旨在提高代码的表达力、类型安全性、编译效率和开发体验。以下是 C20 的主要新功能分类总结&#xff1a;一、四大核心语言特性1. 模块&#xff08;Modules&#xff09;目的&#x…...