Boost库简单运用——时间与日期的处理(三)

    今天我们就开始boost的日期处理部分,日期有太多需要细细考虑的地方,遇到日期处理问题时,自己写一个处理类,那显然是极其耗时的。学习了今天的内容之后,相信我们在日期处理时将更加得心应手。今天我们学习的是boost日期处理的核心类——date。同样,下面我们从代码入手进行学习:

#include <iostream>
#include <boost/date_time/gregorian/gregorian.hpp>

int main()
{
    boost::gregorian::date d1(2014, 9, 26);
    std::cout << d1 << std::endl;
    std::cout << d1.year() << std::endl;
    std::cout << d1.month() << std::endl;
    std::cout << d1.day() << std::endl;
    boost::gregorian::date::ymd_type ymd = d1.year_month_day();
    std::cout << ymd.year << std::endl;
    std::cout << ymd.month << std::endl;
    std::cout << ymd.day << std::endl;
    return 0;
}
    date类算是一个比较灵活的类,初始化不仅可以传类似(2014, 9, 26)的形式,也可以传(2014, Sep, 26)的形式,当然也可以以同类对象初始化咯。对日期的获取可以使用类方法year(), month(), day(),或者可以声明date支持的ymd_type结构体,如上使用方法。若date类就这点用处,那估计大多数人都要说:“这么简陋的功能,自己写一个也比这个好。”

date的功能当然不止这些,下面我们再通过一段代码来了解它另外的功能:

#include <iostream>
#include <boost/date_time/gregorian/gregorian.hpp>

int main()
{
    boost::gregorian::date d1(2014, 9, 26);
    std::cout << d1.day_of_week() << std::endl;
    std::cout << d1.day_of_year() << std::endl;
    std::cout << d1.end_of_month() << std::endl;
    std::cout << boost::gregorian::date(2014, 9, 26).week_number() << std::endl;
    return 0;
}
    date类提供了成员方法可以获取初始化的日期是星期几,这一年的第几天和这个月最后一天是几号。从上面代码中的函数名我们就能了解它们谁是谁了。另外,date还能判断初始化日期是这一年的第几周。注意:boost-1.56.0中,day_of_week直接返回星期几的英文,但有些老版本中是返回数字的,0代表星期天。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值