boost准模板库date_period()(时间段使用 续1)时间段之间的关系运算

Boost之日期时间处理(date_time库) 概述 使用date_time库需要在编译时加上"-lboost_date_time",而且需要包含以下头文件: 处理日期的组件:#include 处理时间的组件:#include date类 date是date_time库处理日期的核心类,使用一个32位的整数作为内部存储,以天为单位表示时间点概念。date也全面支持比较操作和输入输入出,我们可以完全把它当成一个像int、st 阅读详情
#define BOOST_DATE_TIME_SOURCE  
#include<iostream>  
#include<libs/date_time/src/gregorian/greg_names.hpp>  
#include<libs/date_time/src/gregorian/date_generators.cpp>  
#include<libs/date_time/src/gregorian/greg_month.cpp>  
#include<libs/date_time/src/gregorian/greg_weekday.cpp>  
#include<boost/date_time/gregorian/gregorian.hpp>  
using namespace std;  
using namespace boost::gregorian;  
int main()
{
date d1(1991,5,1);
days day(100);


date_period dp(d1,day);
cout<<dp<<endl;//移动前时间区间


dp.shift(days(5));//向后移动5天
cout<<dp<<endl;
dp.shift(days(-10));//向前移动10天
cout<<dp<<endl;
cout<<dp.begin().day()<<endl;
cout<<dp.length().days()<<endl;//区间大小
dp.expand(days(10));//左右扩展10天
cout<<dp<<endl;


date birthday(1991,4,15);
date mybirthday(1991,5,1);
date temp(2010,1,1);
date_period dp1(mybirthday,days(0));
date_period dp2(birthday,days(0));
date_period dp3(temp,days(10));
dp1.expand(days(20));
dp2.expand(days(20));


cout<<"区间1   "<<dp1<<endl;
cout<<"区间2   "<<dp2<<endl;
cout<<"区间1是否在日期之前  "<<dp1.is_before(birthday)<<endl;//区间是否在某个日期之前
cout<<"区间是否在日期之后   "<<dp1.is_after(birthday)<<endl;//区间是否在某个日期之后
cout<<"日期是否在区间之内   "<<dp1.contains(birthday)<<endl;//区间是否包含日期
cout<<"区间1是否包含区间2   "<<dp1.contains(dp2)<<endl;//区间是都包含另一个区间
cout<<"区间之间是否有交集   "<<dp1.intersects(dp2)<<endl;//两个区间之间是否有交集
cout<<"区间1 2之间的交集    "<<dp1.intersection(dp2)<<endl;//区间1 2之间的交集区间
cout<<"区间之间是否相邻     "<<dp1.is_adjacent(dp2)<<endl;//区间是否相邻
cout<<"区间之间的并集"<<dp1.merge(dp2)<<endl;//区间之间的并集,如果没有交集,并集是个无效区间
cout<<"区间之间的并集"<<dp1.span(dp3)<<endl;//广义并集,填满两个区间间的间隔


getchar();


}


上面是对时间段之间以及时间段与时间之间的关系运算,运行结果如下:



【BOOST C++ 10 时间数据】(2)本地独立时间 boost::posix_time::ptime 类定义了一个与位置无关的时间。它使用 boost::gregorian::date 类型,但也存储时间。要使用 boost::posix_time::ptime,请包含头文件 boost/date_time/posix_time/posix_time.hpp。 阅读详情

相关推荐

海康SDK回调PS流解析实战:从字节流到前端H264播放的完整流程

本文详细介绍了海康SDK回调PS流解析的完整流程,从字节流获取到前端H264播放的实现。涵盖SDK初始化、PS流数据结构解析、H264裸流提取、WebSocket传输及前端播放器集成等关键步骤,为视频监控系统开发提供实用指导。

weixin_29061531的博客 200

C++ | boost库之时间与日期

目录 一、timer库 1.timer (V1)(不推荐使用) (1) timer (2) progress_timer 2.cpu_timer(V2) 二、date_time库 1.处理日期的gregorian (1)创建日期对象 (2)判断日期是否为特殊日期 (3)访问日期 (4)日期的输出 (5)boost::gregorian::date与C语音的tm互转 (6)时间长度 (7)日期区间 (8)日期迭代器 (9)其他常用函数 2.处理时间的posix_time 一

该用户还没想到好的昵称的博客 3125

实战指南:轻松破解DataDome滑块验证码的关键步骤

本文详细介绍了破解DataDome滑块验证码的关键步骤,包括理解其工作原理、准备工作、参数获取与配置、完整破解流程及API调用。通过使用Capsolver服务和模拟真实用户行为,帮助开发者有效绕过这一反机器人机制,同时强调了法律与道德考量。

weixin_30415113的博客 481

boost准模板库date_period()(时间段使用)

//时间间隔问题 #define BOOST_DATE_TIME_SOURCE /*#define BOOST_DATE_TIME_SOIURCE #define BOOST_DATE_TIME_NO_LIB或者#BOOST_ALL_NO_LIB 这些宏定义指明项目对于boost库是源代码级别的引入,将boost库源代码直接嵌入到工程中,不加的话默认找编译后的boost库文件 */ #includ

onlysingleboy的专栏 1275

密码子偏好性分析实战指南:从codonW到EMBOSS-CUSP的完整流程解析

本文详细解析了密码子偏好性分析的完整流程,从基础概念到实战操作,涵盖codonW和EMBOSS-CUSP工具的使用技巧。通过RSCU、ENC、CAI等关键参数分析,帮助研究者理解基因表达调控规律,优化外源基因表达效率,适用于分子生物学和合成生物学研究。

weixin_33737774的博客 572

ANSYS Sherlock新手避坑:从ODB++文件导入到属性匹配的完整流程(附官方教程路径)

本文详细解析了ANSYS Sherlock从ODB++文件导入到属性匹配的完整流程,帮助新手避开常见陷阱。内容包括环境准备、官方教程使用技巧、ODB++导入关键检查点、属性验证策略及常见报错解决方案,特别强调了路径设置和材料匹配的重要性,提升仿真效率。

weixin_42519781的博客 455

boost完全开发指南第2章-处理时间4 (日期区间date_period)

日期区间 #include #include using namespace std; using namespace boost::gregorian; void test_date_period() { date_period dp(date(2014,1,1), days(20)); //days cout<<"days: "<<dp.days

学习,思考,记录 933

汽车ECU开发必看:AUTOSAR存储管理模块NvM的5个实战技巧

本文聚焦汽车ECU开发中AUTOSAR存储管理模块NvM的实战应用,分享了五个源自量产项目的核心技巧。内容涵盖Class 3配置的精细调优、稳健冗余策略的构建、读写性能的毫秒级优化、典型工程问题的解决方案以及高效的集成测试方法,旨在帮助开发者规避常见陷阱,实现可靠、高效的存储方案。

weixin_29192211的博客 275

Boost库基础-时间

posix_time类 date_time库在格里高利历的基础上提供微秒级别的时间系统,但如果需要,它最高可以达到纳秒级别的精确度。 用它需要包含以下头文件 #include <boost/date_time/posix_time/posix_time.hpp> using namespace boost::posix_time; 1.时间长度 与日期长度date_du...

希望能帮助大家,希望大家多多支持,你们的支持是我前进的动力。 1843

STM32实战指南:TFTLCD液晶屏驱动与ILI9341应用解析

本文详细解析了STM32驱动TFTLCD液晶屏的实战技巧,重点介绍了ILI9341控制器的硬件连接、寄存器操作及性能优化方法。通过8080并行接口时序分析、GRAM操作优化和DMA传输应用,帮助开发者高效实现液晶屏驱动,适用于工业控制、智能家居等场景。

weixin_26873711的博客 232

Android手机免root玩转Kali NetHunter:Termux保姆级安装指南(附Kex VNC配置)

本文提供了一份详细的Android手机免root安装Kali NetHunter的保姆级指南。通过使用Termux终端模拟器,用户无需解锁Bootloader或获取root权限,即可在普通安卓设备上部署完整的Kali Linux渗透测试环境。教程涵盖了从环境准备、NetHunter核心安装到配置Kex VNC实现图形桌面访问的全过程,并附带了电脑投屏与常见问题解决方案,旨在打造一个便携的移动安全学习与测试平台。

weixin_29208327的博客 297

boost准模板库date_period()时间段操作

//时间间隔问题 #define BOOST_DATE_TIME_SOURCE /*#define BOOST_DATE_TIME_SOIURCE #define BOOST_DATE_TIME_NO_LIB或者#BOOST_ALL_NO_LIB 这些宏定义指明项目对于boost库是源代码级别的引入,将boost库源代码直接嵌入到工程中,不加的话默认找编译后的boost库文件 */ #includ

onlysingleboy的专栏 1100

Autosar诊断实战系列02-Dem(DTC&Event)要点及配置开发详解

Dem模块及其与Dcm等其他模块的交互是整个诊断Stack的重中之重,本文先对与其他模块的交互逻辑进行介绍,有一定掌握后继续重点介绍配置部分的开发。

initiallizer的博客 3331

Boost库基础-日期

1.date_time 它是一个非常全面且灵活的日期时间库,基于我们日常使用的公历,可以提供时间相关的各种所需功能,如精确定义的时间点、时间段和时间长度、加减若干天/月/年、日期迭代器等等,date_time库还支持无限时间和无效时间这种实际生活中有用的概念,而且还可以与C的传统时间结构tm相互转换,提供向下支持。 date_time库需要编译才能使用,编译方法。 date_time库...

希望能帮助大家,希望大家多多支持,你们的支持是我前进的动力。 454

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Boost库学习3 - 日期时间date_time库

Boost库学习 - 日期时间date_time库

万年青的博客 671

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

boost 时间与日期处理

参考 http://blog.youkuaiyun.com/fansongy/article/details/8814996   导视: 类 特点 缺点 说明 timer 计时基类 不适合大跨度时间 适用大部分的普通计时 progress_timer 继承自timer 可以自动写入流中 只

muyuxuebao的博客 736

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

boost日期用法

// boost2.cpp : 定义控制台应用程序的入口点。 //boost gregorian_date usage //made by davidsu33 2014-5-10 #include "stdafx.h" #include #include #include #include #include using namespace std

davidsu33的专栏 2089

利用boost进行时间段的判断

有时候经常要实现程序在某个时间段进行某些操作的功能,如果利用boost库的话可以很方面就能实现。 #include #include // 首先要定义一个时间区间段,设程序需在每日的8:50~9:15之间实现某些操作; boost::posix_time::time_period *pTimePeriod = NULL; boost::posix_time::ptime pt(

morebread的专栏 1816

Boost(十)——日期和时间

结合Boost官网 该库的发明是根据教皇 Gregory XIII 在1582年颁发的格里历。这个历法也是当前使用最广泛的。 库名字就是这么来的:boost::gregorian::... 获取当前时间: boost::gregorian::date d = boost::gregorian::day_clock::universal_day();//universal_time() 方...

coco的博客 612

C++的模板为什么要在头文件(.h)中实现?

今天是个科普文:C++的模板为什么要在头文件(.h)中实现? 模板的用途 这个事情其实我没什么发言权,实话实说,我写模板比较少。对于模板的重要性,也是最近才感觉到。至于模板的重要性,这里也不多说,自己悟。 模板编写 这里就举个函数模板的例子(我们把实现放在.cpp的错误例子): lp_max.h template T max(cons

onlysingleboy的专栏 1万+

反向迭代器reverse_iterator与正向迭代器iterator之间的转换(list反向删除元素的方法)

首先,本文的公众号地址为:你真的会清理std::list的元素吗? 刚开通公众号,请求大家关注一下,谢谢大家。公众号二维码如下:有经验的程序员都知道,list是链表,可以遍历删除,删除的过程类似于以下代码(遍历删除521):int key=521;//程序员就不要爱情了吧 list::iterator it=l.begin();//l为std::list for (; it != l.en

onlysingleboy的专栏 8475

C++各个容器比较(vector,deque,list,set,map,queue,stack)

1、vector(连续的空间存储,可以使用[ ]操作符)可以快速的访问随机的元素,快速的在末尾插入元素,但是在序列中间随机的插入、删除元素要慢。而且,如果一开始分配的空间不够时,有一个重新分配更大空间的过程。 2、deque(小片的连续,小片间用链表相连,实际上内部有一个map的指针,因为知道类型,所以还是可以使用[ ],只是速度没有vector快)快速的访问随机的元素,快速的在开始和末尾插入元

onlysingleboy的专栏 8294

vs2010下网络编程创建套接字连接例子

建立win32控制台项目,然后新建cpp文件 server: #include "WinSock2.h"   #include "stdio.h"   #pragma comment(lib,"Ws2_32.lib")//导入库,lib表示库," "表示库的名称     int main(int argc, CHAR* argv[])   {        //加载Wi

onlysingleboy的专栏 4567

程序猿为什么不喜欢写文档?

有几个事情其实一直是猿猿们内心的痛: 新入职小白 5分钟前: 这系统怎么就没有文档呢? 中级码农 4分钟前: 这代码tm居然没有注释和说明!!! 老油条程序猿 3分钟前: 让文档见鬼去吧!谁爱写谁写 开发文档现状 问了差不多十几个程序猿同学关于公司文档的现状,基本上只有个别

onlysingleboy的专栏 3954
上一篇: boost准模板库date_period()(时间段使用)
下一篇: boost准模板库date迭代器(指针)使用以及常用的两个静态成员函数is_leap_year()和end_of_month_day()
poorskill
博客等级 码龄14年 11粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值