2

我如何计算 C++ 纪元以来的天数,我知道我应该使用mktime函数,但我不明白如何实现它

谢谢!

4

3 回答 3

3

从cplusplus.com修改一些示例代码:

#include <stdio.h>
#include <time.h>

int main ()
{
  time_t seconds;

  seconds = time (NULL);
  int daysSinceEpoch = seconds/(60*60*24);
  printf ("%ld days since January 1, 1970", daysSinceEpoch);

  return 0;
}
于 2013-01-09T19:13:25.460 回答
3

日期不容易正确使用。今天的标准库不提供正确执行此操作的能力。您应该使用适当的日期库,例如 boost::date 或Howard Hinnant 的<date>

使用 Hinnant 的库,代码可能看起来像这样:

date epoch = year(1970)/jan/day(1); // Assuming you're referring to the traditional Unix epoch (some systems such as Cocoa on OS X use the first day of the millenium, Jan 1, 2001 as their epoch)
days d = date::today() - epoch;
于 2013-01-09T20:04:24.017 回答
1

从获取当前时间开始,使用time(NULL). 将该值传递给gmtime,它会返回一个tm*. 阅读tm.

于 2013-01-09T19:36:51.530 回答