|
Boost Users : |
Subject: [Boost-users] [boost][chrono] time_since_epoch different on windows and linux
From: Ralf Globisch (rglobisch_at_[hidden])
Date: 2011-12-08 13:09:02
Hi,
I've run into a bit of a funny one and I'm not sure if I'm missing
something or whether I've encountered a bug.
The following code excerpt *seems* to have 2 different results on
windows 7 (VS2010) and linux (gcc4.6) using boost version 1.47.
#include <iostream>
#include <cstdint>
#include <boost/chrono.hpp>
int main(int argc, char** argv)
{
boost::chrono::duration<double> sec =
boost::chrono::system_clock::now().time_since_epoch();
uint32_t uiSeconds = sec.count();
double dMinutes = uiSeconds/60.0;
double dHours = dMinutes/60.0;
double dDays = dHours/24.0;
double dYears = dDays/365.0;
std::cout << "Sec: " << uiSeconds <<
" Min: " << dMinutes <<
" Hours: " << dHours <<
" Days: " << dDays <<
" Years: " << dYears << std::endl;
return 0;
}
This outputs the following:
Linux:
Sec: 1323362917 Min: 2.2056e+07 Hours: 367601 Days: 15316.7 Years: 41.9636
Windows:
Sec: 82934819 Min: 1.38225e+006 Hours: 23037.4 Days: 959.894 Years: 2.62985
The linux results is the expected result: 1970 + 41 years = ~2011.
Why does the windows result differ? I've run the windows version
on two different windows machines with the same result.
Am I using the library incorrectly? I'm trying to obtain seconds since 1970
so that I can from there calculate seconds since 1900 to calculate
an NTP timestamp.
Thanks for any help/suggestions!
Ralf
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net