1.头文件
#inlcude <boost/date_time/gregorian/gregorian.hpp>
using namespace boost::gregorian;
2.日期初始化方式
date d1;
date d2(2012,09,13);
date d3(2000,Jan,2);
date d4(d2);
date d5=from_string("2012-12-12");
date d6=from_string("2012/12/12");
date d3=from_undelimited_string("20121212");
特殊初始化
date d1(neg_infin);//负无限日期
date d2(pos_infin);//正无限日期
date d3(not_a_date_time);//无效日期
date d4(max_date_time);//最大日期
date d5(min_date_time);//最小日期
日期访问
date d(2010,3,2);
d.year();
d.month();
d.day();
date::ymd_type ymd=d.year_month_day();
ymd.year;
ymd.month;
ymd.day;
d.day_of_week()
d.day_of_year();
d.end_of_month();//返回当月的最后一天
d.week_number();//日期为当年的第几周
日期检测
is_infinity();
is_neg_infinity();
is_pos_infinity();
is_not_a_date();
is_special();
时间输出
to_simple_string(date d)//输出 YYYY-mmm-DD,其中mmm为三个字符的英文月份名
to_iso_string(date d)//转换成YYYYMMDD
to_iso_extended_string(date d)//转换为 YYYY-MM-DD
tm转换
to_tm(date) date转换到tm,tm时分秒(tm_hjour,tm_min,tm_sec)均为0,夏令时tm_isdst为-1;
date_from_tm(tm date),tm转化为年月日,其他被忽略
日期区间(date_period)
period(date,date);
period(date,days);
date begin() const;
date end() const;
date last() const;
days length() const;
bool is_null() const;
void shift(const days&);
void expand(const days&);
bool contains(const date&)const;
bool contains(const period&)const;
date日期迭代器
day_iterator
week_iterator
month_iterator
year_iterator
使用方式
date d(2006,10,23);
day_iterator d_iter(d);
++d_iter;
year_iterator y_iter(*d_iter,3);
date是需要编译的库,所以程序在编译时需要带上静态库
g++ -o datetest datetest.cpp -L $BOOST_LIB -l boost_date_time-gcc44-mt-1_51