date是boost库中date_time库中处理日期的核心类,它使用32位的整数作为内部存储,以天为单位表示时间点的概念。
要想在vs中使用date类,我们需要引用date类的头文件,引用方式:
#include <boost/date_time/gregorian/gregorian.hpp>
using namespace boost::gregorian;
至于date类的内部代码我就不贴出来了,大家可以自己去看下,也不多。
既然我们导入了头文件,也指定了对应的命名空间,那么我们就开始看下它的简单使用。
首先,我们构造一个默认的date对象,看下它的输出是什么?
date boos_date;
cout << boos_date << endl;
输出:
not-a-date-time
哦,这是什么意思,看字面意思似乎提示我们这是一个无效的日期吧。那么我们就去看一下not-a-date-time到底是什么东西。
在special_defs.hpp中我找到了它的定义:
namespace boost {
namespace date_time {
enum special_values {not_a_date_time,
neg_infin, pos_infin,
min_date_time, max_date_time,
not_special, NumSpecialValues};
} } //namespace date_time
可以看到,这是一个枚举类型,那么我就一个一个的试着用这些值来构建date对象,让大家能有一个直观的认识,这些值到底表示什么意思。
date date1(not_a_date_time);
date date2(neg_infin);
date date3(pos_infin);
date date4(min_date_time);
date date5(max_date_time);
date date6(not_special);
cout << date1 << endl;
cout << date2 << endl;
cout << date3 << endl;
cout << date4 << endl;
cout << date5 << endl;
cout << date6 << endl;
在上面我们定义了六个对象,并且直接输出该对象,下面是程序运行结果,注释我顺便写了代表的意思。
not-a-date-time//无效日期
-infinity//负无限日期
+infinity//正无限日期
1400-Jan