Boost 日期库的使用

1.Boost的编译程序bjam 和 Boost库

  http://www.boost.org

  下载boost-jam-3.1.18.tgz 以及 boost_1_45_0.tar.gz

  文档参照“http://www.boost.org/doc/libs/1_45_0/more/getting_started/unix-variants.html#easy-build-and-install”中的说明

 

2.编译生成可执行文件bjam  

  将boost-jam-3.1.18.gz解压,得到文件夹boost-jam-3.1.18。

  进入boost-jam解压后的目录:cd /home/holden/下载/boost-jam-3.1.18

  生成可执行文件bjam:      ./build.sh

  bjam文件生成后存放在目录:/home/holden/下载/boost-jam-3.1.18/bin.linuxx86

 

3.将boost_1_45_0.tar.gz 解压到 /home/holden/applications/boost_1_45_0 目录下

  解压后文件“bootstrap.bat”所在的目录结构类似:/home/holden/applications/boost_1_45_0/bootstrap.bat

 执行: /home/holden/applications/boost_1_45_0/bootstrap.bat

 

  增加环境变量“$BOOST_ROOT”,执行:sudo gedit  /etc/environment,加入:

    BOOST_ROOT="/home/holden/applications/boost_1_45_0"

    export PATH BOOST_ROOT

 

  将生成的bjam,复制到/home/holden/applications/boost_1_45_0 目录下

 

4.将当前目录切换到/home/holden/applications/boost_1_45_0下

  查看所有必须编译才能使用的库,执行命令:./bjam --show-libraries

  可以看到date-time库显示在列表中,说明date-time库需要编译才能使用。

 

  使用下面的命令仅编译date-time库,并将编译后的库文件放在“/home/holden/applications/boost_build“目录下:

  ./bjam --build-dir=/home/holden/applications/boost_build --toolset=gcc stage --with-date_time --build-type-complete

  //./bjam install --build-dir=/home/holden/applications/boost_build --toolset=gcc stage --with-date_time --build-type-complete

 

  在目标目录中,找到一下三个静态链接库文件:date_generators.o,greg_month.o,greg_weekday.o

  将这三个文件,复制到code blocks 当前工程的中的下级目录“boost_gregorian”(即“/home/holden/study/boostdate/boost_gregorian”目录)中。

 

  菜单: project/build options /linker settings 选项卡, link libraries 中点 “add” 按钮,加入以下三项:

    "/home/holden/study/boostdate/boost_gregorian/date_generators.o"

    "/home/holden/study/boostdate/boost_gregorian/greg_month.o"

    "/home/holden/study/boostdate/boost_gregorian/greg_weekday.o"

 

    菜单: project/build options /search directories 选项卡, link libraries 中点 “add” 按钮,加入 “ /home/holden/applications/boost_1_45_0” 目录 。]

 

    可以使用 geidt 打开 Code Blocks 的工程文件(文件类型 *.cbp )查看设置好的内容 . 

 

5.测试代码如下:

  #include <iostream>

  #include <string>

  #include </home/holden/applications/boost_1_45_0/boost/date_time/posix_time/posix_time.hpp>

 

  using namespace std;

  using namespace boost;

  using namespace boost::posix_time;

  using namespace boost::gregorian;

 

 

  int main()

  {

 

      std::string ts("2002-01-20 23:59:59.000");

 

      date d(2002,Feb,1); //an arbitrary date

      //construct a time by adding up some durations durations

      ptime t1(d, hours(5)+minutes(4)+seconds(2)+millisec(1));

      //construct a new time by subtracting some times

      ptime t2 = t1 - hours(5)- minutes(4)- seconds(2)- millisec(1);

      //construct a duration by taking the difference between times

      time_duration td = t2 - t1;

 

      std::cout << to_simple_string(t2) << " - "

                << to_simple_string(t1) << " = "

                << to_simple_string(td) << std::endl;

 

 

      return 0;

  }

 

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值