C ++でエポックからの日数を取得するにはどうすればよいですか、mktime
関数を使用する必要があることは知っていますが、実装方法がわかりません
ありがとう!
C ++でエポックからの日数を取得するにはどうすればよいですか、mktime
関数を使用する必要があることは知っていますが、実装方法がわかりません
ありがとう!
日付を正しく扱うのは簡単ではありません。現在の標準ライブラリは、これを正しく行う機能を提供していません。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;
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;
}
で現在の時刻を取得することから始めtime(NULL)
ます。その値をgmtime
に渡すと、 が返されますtm*
。のドキュメントを読んでくださいtm
。