⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testmicrosec_time_clock.cpp

📁 C++的一个好库。。。现在很流行
💻 CPP
字号:
/* 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 or http://www.boost.org/LICENSE-1.0)

 */

#include "boost/date_time/posix_time/posix_time.hpp"
#include "boost/date_time/microsec_time_clock.hpp"
#include "boost/date_time/testfrmwk.hpp"


int
main() 
{
#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());
    //check("last is less", last < t2);
    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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -