testmicrosec_time_clock.cpp

来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 111 行

CPP
111
字号
/* Copyright (c) 2002,2003 CrystalClear Software, Inc. * Use, modification and distribution is subject to the  * Boost Software License, Version 1.0. (See accompanying * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) */#include "boost/date_time/posix_time/posix_time.hpp"#include "boost/date_time/microsec_time_clock.hpp"#include "boost/date_time/testfrmwk.hpp"intmain() {#ifdef BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK  using namespace boost::posix_time;  //  ptime last = boost::date_time::microsec_resolution_clock<ptime>::local_time();  ptime last = microsec_clock::local_time();  int max = 30;  int i = 0;  for (i = 0; i<max; i++)  {    for (int j=0; j<100000; j++)    {      // some systems loop too fast so "last is less" tests fail      // due to 'last' & 't2' being equal. These calls slow      // it down enough to make 'last' & 't2' different#if defined(BOOST_HAS_GETTIMEOFDAY)      timeval tv;      gettimeofday(&tv, 0);#endif#if defined(BOOST_HAS_FTIME)      SYSTEMTIME st;      GetSystemTime(&st);#endif    }    ptime t1 = second_clock::local_time();    std::cout << to_simple_string(t1) << std::endl;    ptime t2 = microsec_clock::local_time();    std::cout << to_simple_string(t2) << std::endl;    check("hours match", t1.time_of_day().hours() == t2.time_of_day().hours());    check("minutes match",           t1.time_of_day().minutes() == t2.time_of_day().minutes());    check("seconds match",           t1.time_of_day().minutes() == t2.time_of_day().minutes());    check("hours date", t1.date() == t2.date());    if( !check("last is less", last <= t2) ) {      std::cout << to_simple_string(last) << " < "         << to_simple_string(t2) << std::endl;    }    last = t2;      }  std::cout << "Now do the same test for universal time -- a few less iterations" << std::endl;  max = 10;  last = microsec_clock::universal_time();  for (i = 0; i<max; i++)  {    for (int j=0; j<100000; j++)    {      // some systems loop too fast so "last is less" tests fail      // due to 'last' & 't2' being equal. These calls slow      // it down enough to make 'last' & 't2' different#if defined(BOOST_HAS_GETTIMEOFDAY)      timeval tv;      gettimeofday(&tv, 0);#endif#if defined(BOOST_HAS_FTIME)      SYSTEMTIME st;      GetSystemTime(&st);#endif    }    ptime t1 = second_clock::universal_time();    std::cout << to_simple_string(t1) << std::endl;    ptime t2 = microsec_clock::universal_time();    std::cout << to_simple_string(t2) << std::endl;    check("hours match", t1.time_of_day().hours() == t2.time_of_day().hours());    check("minutes match",           t1.time_of_day().minutes() == t2.time_of_day().minutes());    check("seconds match",           t1.time_of_day().minutes() == t2.time_of_day().minutes());    check("hours date", t1.date() == t2.date());    //following check might be equal on a really fast machine    if( !check("last is less", last <= t2) ) {      std::cout << to_simple_string(last) << " < "         << to_simple_string(t2) << std::endl;    }    last = t2;      }#else  check("Get time of day micro second clock not supported due to inadequate compiler/platform", false);#endif  return printTestStats();}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?