Ejemplo n.º 1
0
int main(){
    
    std::cout << std::endl;
    
    std::chrono::system_clock::time_point timeNowSysClock = std::chrono::system_clock::now(); 
    std::chrono::system_clock::duration timeDurSysClock= timeNowSysClock.time_since_epoch();
    std::cout << "std::chrono::system_clock: " << std::endl;
    durationSinceEpoch(timeDurSysClock);
    
    std::cout << std::endl;
     
    auto timeNowStClock = std::chrono::steady_clock::now(); 
    auto timeDurStClock= timeNowStClock.time_since_epoch();
    std::cout << "std::chrono::steady_clock: " << std::endl;
    durationSinceEpoch(timeDurStClock);
    
    std::cout << std::endl;
    
    auto timeNowHiRes = std::chrono::high_resolution_clock::now(); 
    auto timeDurHiResClock= timeNowHiRes.time_since_epoch();
    std::cout << "std::chrono::high_resolution_clock: " << std::endl;
    durationSinceEpoch(timeDurHiResClock);
    
    std::cout << std::endl;

}
Ejemplo n.º 2
0
ptime Time::ToPosixTime(TimeScale& timeScale) const
{
  auto ticks = this->ticks_;

  //  adjust ticks for epoch 1970
  int64 epochDelta = Epoch1970 - timeScale.Epoch();
  ticks -= epochDelta * timeScale.TicksPerDay(); // now the ticks are epoch'd 1970, so we use 1970,1,1 below
  
  // create time duration considering resolution.
  if(time_duration::ticks_per_second() > timeScale.TicksPerSecond()) // since the following computations are integer calculcations, we distinguish here
  {
    int64 conversionRate = time_duration::ticks_per_second() / timeScale.TicksPerSecond();
    ticks = conversionRate * ticks;
  }
  else
  {
    int64 conversionRate = timeScale.TicksPerSecond() / time_duration::ticks_per_second();
    ticks = ticks / conversionRate;
  }
  
  // date(1970) + ptime ticks since (1970)
  time_duration durationSinceEpoch(0, 0, 0, ticks);
  ptime pt(date(1970, 1, 1), durationSinceEpoch);
  return pt;
}