对于时间与日期的处理一直都是一个比较复杂的问题,而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类了,具体用什么,我们以后再谈!
时间: 2024-10-25 02:13:03