2

C ++でエポックからの日数を取得するにはどうすればよいですか、mktime関数を使用する必要があることは知っていますが、実装方法がわかりません

ありがとう!

4

3 に答える 3

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 に答える
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 に答える
1

で現在の時刻を取得することから始めtime(NULL)ます。その値をgmtimeに渡すと、 が返されますtm*。のドキュメントを読んでくださいtm

于 2013-01-09T19:36:51.530 に答える