C++のlocaltime()関数とは?使い方と実行例をわかりやすく解説
この記事では、C++ STLにおけるlocaltime()関数の動作、構文、および具体的な使用例について詳しく解説します。
localtime()とは?
localtime()関数は、C++ STLに標準で組み込まれている関数の一つで、<ctime>ヘッダーファイル内で定義されています。この関数は、time_t型で表された時刻の値を、地域ごとのローカル時刻(現地時間)に変換するために使用されます。
具体的には、引数timerが参照する値をもとにtm構造体の各メンバーに値を設定し、その結果をシステムに設定されているローカルタイムゾーンに対応した時刻として取得します。
構文
localtime(time_t *timer);
パラメータ
この関数は、次のパラメータを受け取ります。
- timer − time_t型の時刻の値を保持するオブジェクトへのポインタです。
戻り値
ローカルタイムゾーンに変換された時刻情報を格納したtm構造体へのポインタを返します。変換に失敗した場合はnullptrが返されます。
tm構造体の主なメンバー
| メンバー | 意味 |
|---|---|
| tm_sec | 秒(0〜61) |
| tm_min | 分(0〜59) |
| tm_hour | 時(0〜23) |
| tm_mday | 日(1〜31) |
| tm_mon | 月(0〜11) |
| tm_year | 1900年からの経過年数 |
使用例
#include <bits/stdc++.h>
using namespace std;
int main(){
time_t hold;
hold = time(NULL);
tm* hold_local = localtime(&hold);
cout<<"現在のシステムのローカル時刻: "<< hold_local->tm_hour << ":"<<hold_local->tm_min << ":"<<hold_local->tm_sec;
return 0;
}
出力
現在のシステムのローカル時刻: 8:28:57
注意点
localtime()は、内部で静的なバッファを共有して結果を返すため、マルチスレッド環境ではスレッドセーフではありません。マルチスレッドプログラムでは、POSIX規格のlocaltime_r()などの使用が推奨されます。また、tm構造体の月(tm_mon)は0から始まるため、実際の月を表示する際には1を加算する必要がある点にも注意しましょう。
-
C++のlog()関数とは?自然対数を求める方法をわかりやすく解説
C++の標準ライブラリには、数学的な計算を行うための便利な関数が多数用意されています。その中でもlog()関数は、数値の自然対数(ネイピア数 e を底とする対数)を求めるために使用される重要な関数です。log()関数の基本情報C/C++のライブラリ関数 double log(double x) は、引数 x の自然対数(底が e の対数)を返します。この関数を使用するには、ヘッダーファイル <cmath> をインクルードする必要があります。関数の宣言double log(double x)パラメータと戻り値パラメータ: x は浮動小数点型(double)の値です。自然対数を求めたい
-
C++のswap()関数とは?2つの変数の値を入れ替える方法をサンプルコード付きで解説
swap()関数とは C++のswap()関数は、2つの値を入れ替える(交換する)ための関数です。この関数を利用すれば、一時的な第三の変数を自分で用意することなく、2つの変数の値を簡単に入れ替えることができます。 swap()関数の構文 void swap(int variable_name1, int variable_name2); 変数に値を代入してswap()関数に渡した場合、関数内では値の入れ替えが行われますが、呼び出し元の実際の変数の値は変わりません。これは、引数が「値渡し」で渡されるためです。実際の変数の値を入れ替えたい場合は、後述する「参照渡し」を使用します。 例1:s