boost准模板库date迭代器(指针)使用以及常用的两个静态成员函数is_leap_year()和end_of_month_day()

//日期迭代器使用
#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 d(1991,5,1);
day_iterator it(d);//创建默认单位为1天的天迭代器,也可以以其他天数为基本单位的迭代器


it++;
cout<<*it<<endl;//这里的输出必须用*it,原因是没有对<<进行重写,不能直接输出迭代器指针
++it;//书上说只提供++it这种形式重载,这里测试it++也可以使用
cout<<*it<<endl;
cout<<(it==d+days(2))<<endl;//这里的*it==d+days(2)也可以是it==d+days(2),根据编程经验,应该是对==进行了运算符重载
cout<<d<<endl;
year_iterator y_it(*it,2);//这里创建的以2年为单位迭代器
y_it++;
cout<<*y_it<<endl;
month_iterator m_it(d,-1);//以-1月为迭代单位,++操作相当于减,--操作相当于加
m_it--;
--m_it;//增加了两个月
cout<<*m_it<<"的月份是"<<m_it->month()<<endl;


//日期类的其他函数功能(静态函数)


date d1(2010,2,28);
cout<<d1.year()<<" is "<<(gregorian_calendar::is_leap_year(d1.year())?"":"not")<<" a leap year"<<endl;//判断是否是闰年
cout<<d1<<"所在月份的最后一天是:"<<gregorian_calendar::end_of_month_day(d1.year(),d1.month())<<endl;//计算一个月最后一天
getchar();

}


以上是对date迭代器的简单使用和静态成员举例,下面是运行结果:




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值