<目次>
(1) C++のtime関数やtime_t型の使い方について
(1-1) C++のtime関数とtime_t型とは?
(1-2) C++のtime_t関数のサンプル
(1) C++のtime関数やtime_t型の使い方について
C++のtime関数とtime_t型は似た名前で最初は紛らわしいですが、それぞれの概要や使い方についてご紹介する事で、違いについても理解できる事を目指します。
(1-1) C++のtime関数とtime_t型とは?
「time_t」はtime関数の戻り値を格納するための型として使われます。一方で「time」関数は引数に与えた「time_t」型のポインタに暦時刻を格納します。以下はそれぞれの概要です。
(表)
関数/オブジェクト | 引数 | 戻り値 | 概要 |
time | time_t * | time_t | ⇒次節の「●サンプル②」にプログラムあり
(引数) (戻り値) (処理概要) |
time_t | – | – | ⇒次節の「●サンプル①」にプログラムあり
・主に「time関数の戻り値の型」として使われます(カレンダー時刻を返却) (例) |
(1-2) C++のtime_t関数のサンプル
●サンプル①
#include <iostream> #include <time.h> using namespace std; int main(void) { //# time_t型の変数を宣言 time_t t; //# time()関数の引数として、time_tのポインタを与える //# 1970~2021年=51年の想定 cout << "time関数の結果:" << (time(&t) / 60 / 60 / 24 / 365) << endl; }
●サンプル②
↓
②その結果をlocaltime関数に代入し、「struct tm型」の構造体に分解して詰めます。
↓(年、月、日、時、分など各変数に分解して詰める)
③その結果をasctime関数に代入し「char型」の表示形式に変換します。
#include <time.h> #include <iostream> using namespace std; int main () { //# time_t型の変数を定義 time_t tmp; //# tm型のポインタを定義 struct tm * timeinfo; //# カレンダー時刻を取得 (time_t*型) //# ⇒1970/1/1~現在までの秒数 time (&tmp); //# 現地時刻を取得 (time_t*型) timeinfo = localtime (&tmp); cout<< asctime(timeinfo); return 0; }
(実行結果) Tue Jun 29 12:24:05 2021