当前位置: 首页>>代码示例>>C++>>正文


C++ base::Time方法代码示例

本文整理汇总了C++中base::Time方法的典型用法代码示例。如果您正苦于以下问题:C++ base::Time方法的具体用法?C++ base::Time怎么用?C++ base::Time使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在base的用法示例。


在下文中一共展示了base::Time方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: FromExploded

// static
Time Time::FromExploded(bool is_local, const Exploded& exploded)
{
    // 创建系统拆分时间结构, 代表本地时间或者UTC.
    SYSTEMTIME st;
    st.wYear = exploded.year;
    st.wMonth = exploded.month;
    st.wDayOfWeek = exploded.day_of_week;
    st.wDay = exploded.day_of_month;
    st.wHour = exploded.hour;
    st.wMinute = exploded.minute;
    st.wSecond = exploded.second;
    st.wMilliseconds = exploded.millisecond;

    // 转换到FILETIME.
    FILETIME ft;
    if(!SystemTimeToFileTime(&st, &ft))
    {
        NOTREACHED() << "Unable to convert time";
        return Time(0);
    }

    // 确保是UTC.
    if(is_local)
    {
        FILETIME utc_ft;
        LocalFileTimeToFileTime(&ft, &utc_ft);
        return Time(FileTimeToMicroseconds(utc_ft));
    }
    return Time(FileTimeToMicroseconds(ft));
}
开发者ID:hgl888,项目名称:x-framework,代码行数:31,代码来源:time.cpp

示例2: Now

// static
Time Time::Now()
{
    if(initial_time == 0)
    {
        InitializeClock();
    }

    // 高精度计数器实现计时, 能够得到比10-15ms小的超时. 仅通过
    // CurrentWallclockMicroseconds(), 无法得到细粒度的定时器.
    //
    // 使用时, 初始化时钟(initial_time)和计数器(initial_ctr). 通过
    // 和初始时钟比较能得到消逝的时钟数, 然后就能得出时间差.
    //
    // 为避免误差, 计数器定期的和系统时钟同步.
    while(true)
    {
        TimeTicks ticks = TimeTicks::Now();

        // 计算自开始以来的时间计数.
        TimeDelta elapsed = ticks - initial_ticks;

        // 检查是否需要同步时钟.
        if(elapsed.InMilliseconds() > kMaxMillisecondsToAvoidDrift)
        {
            InitializeClock();
            continue;
        }

        return Time(elapsed + Time(initial_time));
    }
}
开发者ID:hgl888,项目名称:x-framework,代码行数:32,代码来源:time.cpp

示例3: FromFileTime

// static
Time Time::FromFileTime(FILETIME ft)
{
    return Time(FileTimeToMicroseconds(ft));
}
开发者ID:hgl888,项目名称:x-framework,代码行数:5,代码来源:time.cpp

示例4: NowFromSystemTime

// static
Time Time::NowFromSystemTime()
{
    // 强制同步.
    InitializeClock();
    return Time(initial_time);
}
开发者ID:hgl888,项目名称:x-framework,代码行数:7,代码来源:time.cpp

示例5: externalize

void ManipulatorJointTrajectory::externalize(Externalizer& e, String format, Real version)
{
  if (format=="") format = String("xml");

  if (!formatSupported(format,version,e.ioType()))
    throw std::invalid_argument(Exception(String("format ")+format+" "+base::realToString(version)+" unsupported"));

  if (format == "txt") {

    if (e.isInput()) {
      array<Vector> qs;
      array<Time> times;
      bool first = true;
      bool deltas = false;
      
      while (e.moreInput()) {
	
	String line(e.readLine());
	if (line.empty()) break; // empty line or eof indicates end of list
	while (line[0] == '#') line = e.readLine(); // skip comment lines
	
	if (first) {
	  if (!( (line.substr(0,8) == "absolute") || (line.substr(0,8) == "relative")))
	    throw std::invalid_argument(Exception(String("joint waypoint text file must indicate 'absolute' or 'relative'")));
	  
	  deltas = (line.substr(0,8) == String("relative"));
	  first = false;
	}
	else {
	  // count separating spaces to determine dof
	  Int spaces=0;
	  for(Int i=0; i<line.size(); i++) 
	    if (line[i]==' ') { 
	      spaces++;
	      while ( (i<line.size()-1) && (line[i]==' ')) i++;
	    }
	  if (line[0]==' ') spaces--; // don't count leading space(s)
	  
	  std::istringstream iss(line);
	  iss.setf(std::ios_base::skipws | std::ios_base::dec);
	  
	  const Int dof = spaces + 1 - 1; // don't count time at end as a dof
	  
	  Vector q(dof);
	  
	  for(Int i=0; i<dof; i++)
	    iss >> q[i];
	  
	  Real t;
	  iss >> t;
	  
	  qs.push_back(q);
	  
	  times.push_back(Time(t));
	}
      }
      
      if (first)
	throw std::invalid_argument(Exception(String("joint waypoint text file contains no data.")));
      
      if (qs.size() < 2)
	throw std::invalid_argument(Exception(String("joint waypoint text file must contain at least 2 'waypoint' vectors")));
      
      init(qs,times,deltas);
      
    }
    else { // output
开发者ID:davidljung,项目名称:opensim,代码行数:67,代码来源:ManipulatorJointTrajectory.cpp

示例6: time

Time ManipulatorJointTrajectory::time(Real s) const
{
  Math::bound<Real>(s,0,1);
  return Time( times[0].seconds() +  ( (times[times.size()-1] - times[0]).seconds() * s ) );
}
开发者ID:davidljung,项目名称:opensim,代码行数:5,代码来源:ManipulatorJointTrajectory.cpp


注:本文中的base::Time方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。