Boost之日期时间处理(date_time库)

本文详细介绍了Boost库中的日期时间处理,包括date、date_duration、date_period、日期迭代器、time_duration、ptime、time_period及时间迭代器的使用和概念。
摘要由CSDN通过智能技术生成

概述

使用date_time库需要在编译时加上"-lboost_date_time",而且需要包含以下头文件:
处理日期的组件:#include <boost/date_time/gregorian/gregorian.hpp>
处理时间的组件:#include <boost/date_time/posix_time/posix_time.hpp>

date类

date是date_time库处理日期的核心类,使用一个32位的整数作为内部存储,以天为单位表示时间点概念。date也全面支持比较操作和输入输入出,我们可以完全把它当成一个像int、string那样的基本类型来使用。
#include <iostream>
#include <boost/date_time/gregorian/gregorian.hpp>

using namespace std;
using namespace boost::gregorian;
int main()
{
    date d1(2001, 1, 1);
    date d2(2002, Feb, 2);
    date d3 = from_string("2003-3-3");
    date d4 = from_string("2004/4/4");
    date d5 = from_undelimited_string("20050505");

    cout << "本地日期:" << day_clock::local_day() << endl
         << "UTC日期:" << day_clock::universal_day() << endl << endl;

    cout << "负无限日期:" << neg_infin << endl
         << "正无限日期:" << pos_infin << endl
         << "无效日期:" << not_a_date_time << endl
         << "最大可能日期:" << max_date_time << endl
         << "最小可能日期:" << min_date_time << endl << endl;

    cout << "对于2001-01-01:" << endl
         << "年:" << d1.year() << endl
         << "月:" << d1.month() << endl
         << "日:" << d1.day() << endl << endl;

    cout << "对于2002-02-02:" << endl
         << "星期数:(0表示星期天)" << d2.day_of_week() << endl
         << "当年的第几天:" << d2.day_of_year() << endl
         << "当年的第几周:" << d2.week_number() << endl
         << "当月的最后一天:" << d2.end_of_month() << endl << endl;

    cout << "对于2003-03-03:" << endl
         << "直接打印日期:" << d3 << endl
         << "使用to_simple_string打印日期:" << to_simple_string(d3) << endl
         << "使用to_iso_string打印日期:" << to_iso_string(d3) << endl
         << "使用to_iso_extended_string打印日期:" << to_iso_extended_string(d3) << endl << endl;

    return 0;
}

输出:
本地日期:2016-Jun-24
UTC日期:2016-Jun-24

负无限日期:1
正无限日期:2
无效日期:0
最大可能日期:4
最小可能日期:3

对于2001-01-01:
年:2001
月:Jan
日:1

对于2002-02-02:
星期数:(0表示星期天)Sat
当年的第几天:33
当年的第几周
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值