C++ の Time(NULL) 関数

Zeeshan Afridi 2023年10月12日
C++ の Time(NULL) 関数

この記事では、C++ の time(NULL) 関数について説明します。

C++ の time(NULL) 関数

パラメータ NULL を持つ time() 関数 time(NULL) は、1970 年 1 月 1 日からの現在の暦時間を秒単位で返します。Null は組み込み定数で、値は 0 で、 に似たポインタです。 0 CPU が Null ポインタ用の特別なビット パターンをサポートしていない限り。

time_t 変数へのポインターを渡すとします。 その変数は現在の時刻を指します。 time_t は、システム時刻の値を格納および利用するために定義された ISO C++ ライブラリのデータ型です。

このような値の型は、標準の time() ライブラリ関数から返されます。 time.h ヘッダー ファイルで定義され、符号なし長整数で、サイズは 8 バイトです。

コード例:

#include <time.h>

#include <iostream>

using namespace std;

int main() {
  time_t seconds;
  seconds = time(NULL);
  cout << "Time in seconds is = " << seconds << endl;
}

出力:

Time in seconds is = 1650710906

time_t データ型の変数 seconds を定義し、それを関数 time(NULL) の戻り値に初期化しました。 この関数は1970 年 1 月 1 日からの時間を秒単位で返し、最後に結果を出力しました。

現在、秒単位の読み取り時間は人間にとって便利に理解できない可能性があるため、秒単位の時間を理解可能な形式に変換するメカニズムが必要です。 そして、C++ ライブラリのおかげで、次のような解決策が得られました。

#include <time.h>

#include <iostream>

using namespace std;

int main() {
  time_t seconds;
  seconds = time(NULL);
  struct tm* local_time = localtime(&seconds);
  cout << "Time in seconds      " << seconds << endl;
  cout << "local time           " << asctime(local_time);
}

出力:

Time in seconds   1650712161
local time      Sat Apr 23 16:09:21 2022

struct tm は C/C++ 言語の time.h ヘッダー ファイルに組み込まれた構造体であり、すべてのオブジェクトにはマシン上の日付と時刻が含まれています。 tm 構造体のこれらのメンバーを利用して、コードを好きなようにカスタマイズできます。

struct tm {
  int tm_sec;    // seconds,  ranges from 0 to 59
  int tm_min;    // minutes, ranges from 0 to 59
  int tm_hour;   // hours, ranges from 0 to 23
  int tm_mday;   // day of the month, ranges from 1 to 31
  int tm_mon;    // month, ranges from 0 to 11
  int tm_year;   // The number of years since 1900
  int tm_wday;   // day of the week, ranges from 0 to 6
  int tm_yday;   // day in the year, ranges from 0 to 365
  int tm_isdst;  // daylight saving time
};
著者: Zeeshan Afridi
Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

関連記事 - C++ Function