【Boost】time_duration, time_period, time_iterator

来源:互联网 发布:简易建模软件 编辑:程序博客网 时间:2024/05/20 20:45
time_duration的例子
void test_ptime_duration(){using namespace boost::posix_time;using namespace boost::gregorian;// time_duration构造的常用方法time_duration td1(1, 2, 3, 4);time_duration td2 = time_duration(1, 2, 3) + milliseconds(4) + microseconds(5);time_duration td3 = hours(1) + minutes(2) + seconds(3) + milliseconds(4) + microseconds(5);time_duration td4(duration_from_string("01:02:03.000"));// 计算总共的秒数, 毫秒数, 微秒数.std::cout << td1.total_seconds() << std::endl;std::cout << td1.total_milliseconds() << std::endl;std::cout << td1.total_microseconds() << std::endl;}
time_period的例子
void test_ptime_period(){using namespace boost::posix_time;using namespace boost::gregorian;// time_period构造的常用方法, 注意这样的构造函数是左闭右开, 如果end <= begin則时间段定义为无效.time_period tp1(ptime(date(2010, 11, 29), hours(11) + minutes(23) + seconds(45)), ptime(date(2010, 12, 10), hours(22) + minutes(45) + seconds(56) + milliseconds(10)));time_period tp2(ptime(date(2010, 11, 29), hours(11) + minutes(23) + seconds(45)),time_duration(2, 3, 4, 5));time_period tp3(tp2);std::cout << tp1 << std::endl;std::cout << tp2 << std::endl;// shift, expandtime_period tp5(tp2);tp5.shift(time_duration(1, 2, 3, 4)); time_period tp6(tp2);tp6.expand(time_duration(2, 3, 4, 5)); std::cout << tp5 << std::endl;std::cout << tp6 << std::endl;// begin, last, endptime pt1 = tp2.begin();ptime pt2 = tp2.end();ptime pt3 = tp2.last();std::cout << pt1 << std::endl;std::cout << pt2 << std::endl;std::cout << pt3 << std::endl;// length, merge, span, intersects, intersection// 同date, 参见: http://blog.csdn.net/huang_xw/article/details/8239518}
time_iterator的例子
void test_ptime_iterator(){using namespace boost::gregorian;using namespace boost::posix_time;date d(2012, 11, 30);ptime start(d);ptime end = start + hours(1);// 每次递增15分钟time_iterator titr(start, minutes(15)); // 生成 00:00:00, 00:15:00, 00:30:00, 00:45:00while (titr < end) {std::cout << to_simple_string(*titr) << std::endl;++titr;}}

原创粉丝点击