【Boost】time_duration, time_period, time_iterator

來源:互聯網
上載者:User

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;}}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.