boost学习笔记(时间点)

本文介绍了如何使用Boost库中的ptime来表示特定的时间点,包括日期与时间的结合,并演示了ptime的基本操作如创建、比较及加减运算。此外还展示了ptime与tm结构间的转换方法及如何使用时间点迭代器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时间点ptime就是日期(date)加上一个不超过24小时的时间长度(time_duration)。

#include <iostream>
#include <boost\date_time\gregorian\gregorian.hpp>
#include <boost\date_time\posix_time\posix_time.hpp>

using namespace std;
using namespace boost;

int main() {


    //创建键日期
    gregorian::date d = gregorian::day_clock::local_day();
    //创建1小时的时间长度
    posix_time::time_duration td(1,0,0,0);
    //使用日期和时间长度创建时间点
    posix_time::ptime p(d,td);
    cout << p << endl;

    //时间点运算
    posix_time::hours h(3);
    posix_time::ptime p1 = p + h;
    cout << p1 << endl;
    cout << posix_time::to_iso_extended_string(p1) << endl;
    assert(p < p1);


    //和tm之间的转换
    tm t = posix_time::to_tm(p);
    posix_time::ptime p2 = posix_time::ptime_from_tm(t);


    //时间点迭代器

    posix_time::time_iterator timeIter(p,posix_time::minutes(20));
    while (timeIter < p + posix_time::hours(1)) {
        cout << *timeIter << endl;
        ++timeIter;
    }

    return 0;
}
2018-Jun-21 01:00:00
2018-Jun-21 04:00:00
2018-06-21T04:00:00
2018-Jun-21 01:00:00
2018-Jun-21 01:20:00
2018-Jun-21 01:40:00
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值