timer类

#include <boost\timer.hpp>
#include "iostream"
using namespace std; int _tmain(int argc, _TCHAR* argv[])
{
boost::timer t;
cout<<"max time span: "<<t.elapsed_max()/<<"h"<<endl; //596.523h
cout<<"min time span: "<<t.elapsed_min()<<"s"<<endl; //0.001s
cout<<"now time: "<<t.elapsed()<<"s"<<endl; //0.00s
return ;
}

timer对象在创建的时候就开始计时了,它最多只能计时596个小时左右,所以适合以月、年为单位计时需求。

progress_timer类

#include "iostream"
#include <boost\progress.hpp>
using namespace std; int _tmain(int argc, _TCHAR* argv[])
{
boost::progress_timer t;
//do something; return ;
}

progress_timer 继承自timer类,progress_timer比较牛的点是它在析构的时候会自动向标准流(默认是std:out)输出自对象创建后流逝的时间;但是也可以把时间输出到其他库标准流(比如stringstream)

int _tmain(int argc, _TCHAR* argv[])
{
stringstream ss;
{
boost::progress_timer t(ss);
//do something;
}
cout<<ss.str();
return ;
}

progress_display类

#include "iostream"
#include <Windows.h>
#include <boost\progress.hpp>
using namespace std; int _tmain(int argc, _TCHAR* argv[])
{ //声明一个progress_display的对象,基数是一个整数
boost::progress_display p();
int i=;
while(i<)
{
i++;
Sleep();
++p;
}
return ;
}

progress_display类与timer和progress_timer没有任何关系。

它接受一个long型参数expected_count,表示用于进度显示的参数;当进度达到expected_count时表示任务已经了,进度是100%。

输出结果:

0%   10   20   30   40   50   60   70   80   90   100%
|----|----|----|----|----|----|----|----|----|----|
***********************

date类

date类是date_time库中的一个类。下面是它的几种用法。

个人觉得其中的day_of_year() 函数还是挺实用的,我就经常要算今天是第几天

#include "iostream"
#include <boost\date_time\gregorian\gregorian.hpp>
using namespace std;
using namespace boost::gregorian; int _tmain(int argc, _TCHAR* argv[])
{
/*日期的初始化*/
date d;
date d2(,,);
date d3 = from_string("2014-07-30");
date d4 = from_string("2014/07/30"); /*日期的获得*/
cout<<d3.year()<<"-"<<d3.month()<<"-"<<d3.day()<<endl;
cout<<day_clock::local_day()<<endl; //local time
cout<<day_clock::universal_day()<<endl; //UTC time cout<<d3.day_of_week()<<endl;//返回星期数,0表示星期天
cout<<d3.day_of_year()<<endl;//返回该年第几天 /*日期转换成字符串*/
cout<<to_simple_string(d3)<<endl //2014-JUL-30
cout<<to_iso_string(d3)<<endl; //
cout<<to_iso_extended_string(d3)<<endl; //2014-07-30 return ;
}

c语言里有一个结构体tm可以用来处理日期,下面是date类的运算以及与tm相互转换的例子:

int _tmain(int argc, _TCHAR* argv[])
{
/*日期的初始化*/
date d(,,);
tm t=to_tm(d);//从date转换到tm
cout<<t.tm_year<<"-"<<t.tm_mon<<"-"<<t.tm_mday<<endl; //114-6-20 (tm 是从1900年开始的,month的0代表1月)
date d2=date_from_tm(t);//从tm转换到date /*日期的运算*/
date d3(,,);
cout<<d3-d<<endl;
cout<<d+days()<<endl; //2014-Jul-30
cout<<d+months()<<endl; //2015-May-20
cout<<d+years()<<endl; //2024-Jul-20
cout<<d-weeks()<<endl; //2014-Mar-02
return ;
}

c++ boost库学习一:时间和日期的更多相关文章

  1. Boost库学习之旅入门篇

    学习及使用Boost库已经有一段时间了,Boost为我的日常开发中带来了极大的方便,也使得我越来越依赖于boost库了.但boost功能太多,每次使用还是得翻看以前的 资料,所以为了以后可以更方便的使 ...

  2. Python标准库:datetime 时间和日期模块 —— 时间的获取和操作详解

    datetime 时间和日期模块 datetime 模块提供了以简单和复杂的方式操作日期和时间的类.虽然支持日期和时间算法,但实现的重点是有效的成员提取以进行输出格式化和操作.该模块还支持可感知时区的 ...

  3. boost库学习之regex

    一.背景 项目中许多地方需要对字符串进行匹配,比如根据指定的过滤字符串来过滤文件名.刚开始是排斥使用boost库的,第一,我不熟悉boost库:第二,如果引入第三方库,就会增加库的依赖,这样的后果是, ...

  4. boost库学习之开篇

    本系列文章使用boost_1.58.0版本. 一.欢迎使用boost C++库 boost致力于提供一个免费的.便携的源代码级的库. 我们重视那些与C++标准一起工作良好的库.boost库将要成为一个 ...

  5. c++ boost库学习三:实用工具

    noncopyable 大家都知道定义一个空类的时候,它实际包含了构造函数,拷贝构造函数,赋值操作符和析构函数等. 这样就很容易产生一个问题,就是当用户调用A a(“^_^") 或者A c= ...

  6. 【Boost】boost库获取格式化时间

    获取时间方式 格式一:YYYYMMDD #include<iostream> #include<string> #include<boost/date_time/greg ...

  7. C标准函数库中获取时间与日期、对时间与日期数据操作及格式化

    表示时间的三种数据类型[编辑] 日历时间(calendar time),是从一个标准时间点(epoch)到现在的时间经过的秒数,不包括插入闰秒对时间的调整.开始计时的标准时间点,各种编译器一般使用19 ...

  8. boost库学习随记六:使用同步定时器、异步定时器、bind、成员函数回调处理、多线程的同步处理示例等

    一.使用同步定时器 这个示例程序通过展示如何在一个定时器执行一个阻塞等待. //makefile #-------------------------------------------------- ...

  9. c++ boost库学习二:内存管理->智能指针

    写过C++的人都知道申请和释放内存组合new/delete,但同时很多人也会在写程序的时候忘记释放内存导致内存泄漏.如下所示: int _tmain(int argc, _TCHAR* argv[]) ...

随机推荐

  1. Material design之Material Theme

    Material Theme提供了三方面的内容: 系统组件的颜色可以自定义更改 系统组件添加了触摸反馈动画效果 Activity切换动画效果 系统主题默认被定义在以下三个样式中: 使用Material ...

  2. 圆角头像----CSS3特效

    w3c:http://www.w3school.com.cn/cssref/pr_border-radius.asp 定义和用法 border-radius 属性是一个简写属性,用于设置四个 bord ...

  3. Unity3d 多次显示关闭一个UI

    publicclass OpenClooseGoUI : MonoBehaviour { public  GameObject   closeBt; public  GameObject   goUI ...

  4. 【BZOJ2794】[Poi2012]Cloakroom 离线+背包

    [BZOJ2794][Poi2012]Cloakroom Description 有n件物品,每件物品有三个属性a[i], b[i], c[i] (a[i]<b[i]).再给出q个询问,每个询问 ...

  5. JavaScript数据结构与算法-队列练习

    队列的实现 // 队列类 function Deque () { this.dataStore = []; this.enqueueFront = enqueueFront; this.enqueue ...

  6. DevExpress控件-lookupedit的使用方法详解(图文)转http://blog.csdn.net/qq395537505/article/details/50920508

    绑定数据源: lookupedit.Properties.ValueMember = 实际要用的字段; //相当于editvalue lookupedit.Properties.DisplayMemb ...

  7. GDI+的应用

    在VS中创建窗体 (1)CDI+清除绘画面 在窗体中写入代码: protected override void OnPaint(PaintEventArgs e){ Graphics g=e.Grap ...

  8. Unity使用native读取streamingasset里文件

    需求是,使用native方式,读取apk包里的lua代码,读进c#,做解密 一准备unity工程 public class GameMain : MonoBehaviour { public cons ...

  9. MySQL中myisam和innodb的主键索引有什么区别?

    MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址.下图是MyISAM索引的原理图: 这里设表一共有三列,假设我们以Col1为主键,则上图是一个MyISAM表的主索 ...

  10. PhpStorm2017.1版激活方法、汉化方法以及界面配置

    本教程仅对2017.1版有效!!!!!! PhpStorm激活和汉化文件下载网址(提取密码:62cg) PhpStorm的介绍 PhpStorm是一个轻量级且便捷的PHP IDE,其旨在提高用户效率, ...