【C言語】標準ライブラリ【time.h】 - 日付及び時間
【C言語】
標準ライブラリ【time.h】
日付及び時間
日付及び時間 <time.h>
グレゴリオ暦に基づく日付等を扱うための型・マクロ・関数の宣言定義。
clock_t | clock 関数が返す値の型 |
time_t | 時刻を表す型 |
struct tm | 暦時刻の各要素(時分秒等)を格納する構造体 |
CLOCKS_PER_SEC | clock 関数が返す値が秒単位に変換するために割る値を表すマクロ |
asctime | tm 構造体から文字列への変換 |
clock | CPU使用時間 |
ctime | time_t 型から文字列への変換 |
difftime | time_t 型どうしの秒単位での差 |
gmtime | UTCの取得 |
localtime | 地方時刻の取得 |
mktime | tm 構造体から time_t 型への変換 |
strftime | tm 構造体から文字列への書式付き変換 |
time | 暦時刻 |
時間<time.h> :時刻を取り扱う関数群
時刻を取り扱う関数群。これらの関数はUNIXの慣習から
世界協定時刻(UTC)における 1970年1月1日0時0分0秒 を基準としている。
今後、説明文中では 1970年1月1日0時0分0秒 を 基準時刻 と表記する。
- [ time ] : 現在の時刻を基準時刻からの経過秒数で返す。
-
関数型 : time_t time(time_t *t);
引数 : 時刻を格納する変数のアドレス
戻り値 : 基準時刻からの経過秒数
機能 : 現在の時刻を基準時刻からの経過秒数で返す。
補足 : 引数を NULL で呼び出して戻り値だけを取得できる。
: 環境によっては秒以外の単位を使うこともあります。
- [ clock ] : プログラムが使用したプロセス時間を返す。
-
関数型 : clock_t clock(void);
引数 : なし
戻り値 : 使用プロセス時間
機能 : プログラムが使用したプロセス時間を返す。
補足 : clock() / CLOCKS_PER_SEC とすることで秒単位の値を得られる。
注意 : マルチスレッド環境では経過時刻と一致しない。
- [ difftime ] : 時刻の引き算をする
-
関数型 : double difftime(time_t t1, time_t t2);
引数 : 基準時刻からの経過秒数1、基準時刻からの経過秒数2
戻り値 : 2つの経過秒数の差
機能 : 時刻の引き算をする。環境によっては秒以外の単位を使うこともあります。
- [ localtime ] : 基準時刻からの経過秒数を国内時刻に変換する。
-
関数型 : struct tm *localtime(const time_t *t);
引数 : 基準時刻からの経過秒数
戻り値 : 秒数を国内時刻情報に変換した構造体
機能 : 基準時刻からの経過秒数を国内時刻に変換する。
注意 : 戻り値はシステム全体で共有されたメモリ領域なので、
必ず、別途宣言した構造体にコピーしておく必要がある。
- [ gmtime ] : 基準時刻からの経過秒数を国際時刻に変換する。
-
関数型 : struct tm *gmtime(const time_t *t);
引数 : 基準時刻からの経過秒数
戻り値 : 秒数を国際時刻情報に変換した構造体
機能 : 基準時刻からの経過秒数を国際時刻に変換する。
注意 : 戻り値はシステム全体で共有されたメモリ領域なので、必ず、別途宣言した構造体にコピーしておく必要がある。
- [ asctime ] : 時刻を Wed Feb 17 20:14:04 1988 のような文字列に変換する。
-
関数型 : char *asctime(const struct tm *tm);
引数 : 時刻を格納した構造体
戻り値 : 時刻を変換した文字列の先頭アドレス
機能 : 時刻を Wed Feb 17 20:14:04 1988 のような文字列に変換する。
注意 : 戻り値はシステム全体で共有されたメモリ領域なので、必ず、別途宣言した構造体にコピーしておく必要がある。
- [ ctime ] : 時刻を Wed Feb 17 20:14:04 1988 のような文字列に変換する。
-
関数型 : char *ctime(const time_t *t);
引数 : 基準時刻からの経過秒数
戻り値 : 時刻を変換した文字列の先頭アドレス
機能 : 時刻を Wed Feb 17 20:14:04 1988 のような文字列に変換する。
注意 : 戻り値はシステム全体で共有されたメモリ領域なので、必ず、別途宣言した構造体にコピーしておく必要がある。
- [ strftime ] : 時刻を指定された書式通りに文字列に変換する。
-
関数型 : size_t strftime(char *s, size_t smax, const char *fmt, const struct tm *tp);
引数 : 文字配列、文字配列のサイズ、時刻書式指定文字列、時刻を格納した構造体
戻り値 : 配列に書き込まれた文字数。失敗した場合は0。
機能 : 時刻を指定された書式通りに文字列に変換する。