首页 > 代码库 > Boost库简单运用——时间与日期的处理(一)

Boost库简单运用——时间与日期的处理(一)

    对于时间与日期的处理一直都是一个比较复杂的问题,而C++中对于时间与日期的处理也是比较简陋的,并不像Java、C#之流提供了非常方便易用的类。但随着Boost的推出,对于时间的处理也变得越来越简单方便了,今天我们就来学习一些较为方便的处理方式:

    首先,我们先来了解Boost中对时间处理的一个比较基础的类,也是后续几个类的基类——timer. timer类可以测量时间的流逝,依据平台的不同,提供了毫秒甚至微秒级别的时间控制,我们也可以用它来做一个很简单的计时器,下面,我们通过代码来解释timer的用法:

#include <iostream>
#include <boost/timer.hpp>

int main() 
{
    boost::timer t;
    std::cout << "Max timespan : " << t.elapsed_max() / 3600 << "h" << std::endl;
    std::cout << "Min timespan : " << t.elapsed_min() << "s" << std::endl;
    std::cout << "Time elapsed : " << t.elapsed() << std::endl;
    return 0;
}

    timer类成员方法通常我们只需要使用以上三个,由函数名我们也大概知道它们的用处了,分别是:获取可度量的最大时间跨度,以小时为单位;可度量的最小时间跨度,以秒为单位;及获取流逝的时间。需要指出的是,流逝的时间中计时的开端是timer类实例构造时,并非是程序开始运行时,这点需要注意!

    timer类对于短期的时间处理还是绰绰有余的,因为它最大的时间跨度是几百个小时,也就是说,我们用它来测试一些算法的运行时间应该是没有问题的。若要处理的时间是以天、月、年为单位则不能继续使用timer类了,具体用什么,我们以后再谈!

Boost库简单运用——时间与日期的处理(一)