C言語編 標準ライブラリのリファレンス tm

先頭へ戻る

tm

概要 カレンダー時間(歴時間)の詳細を表現する構造体。
ヘッダ time.h
形式
struct tm {
    int tm_sec;
    int tm_min;
    int tm_hour;
    int tm_mday;
    int tm_mon;
    int tm_year;
    int tm_wday;
    int tm_yday;
    int tm_isdst;
};
	
詳細 各メンバの意味と、値の範囲は以下の通りである。
メンバ 意味 範囲
tm_sec C95規格までは 0~61。C99規格から 0~60。
tm_min 0~59
tm_hour 0~23
tm_mday 1~31
tm_mon 0~11
tm_year 1900年を起点とした経過年
tm_wday 曜日 0~6(日曜日を 0 とする)
tm_yday 1月1日を基準とした通算日 0~365
tm_isdst 季節時間のフラグ 0 のときは、季節時間の処理を行わない。
0 より大きいときは、季節時間の処理を行う。
0 より小さいときは、不明である(その情報が得られないことを示す)。
注意
使用例
#include <stdio.h>
#include <time.h>
#include <assert.h>

static void printTm(const struct tm* t);

int main(void)
{
    struct tm* utc;
    time_t t;

    t = time( NULL );
    utc = gmtime( &t );

    printTm( utc );

    return 0;
}

void printTm(const struct tm* t)
{
    assert( t != NULL );

    printf( "年       : %d\n", t->tm_year );
    printf( "月       : %d\n", t->tm_mon );
    printf( "日       : %d\n", t->tm_mday );
    printf( "曜日     : %d\n", t->tm_wday );
    printf( "時       : %d\n", t->tm_hour );
    printf( "分       : %d\n", t->tm_min );
    printf( "秒       : %d\n", t->tm_sec );
    printf( "通算日   : %d\n", t->tm_yday );
    printf( "季節時間 : %d\n", t->tm_isdst );
}

実行結果

年       : 111
月       : 3
日       : 3
曜日     : 0
時       : 4
分       : 7
秒       : 27
通算日   : 92
季節時間 : 0
関連 協定世界時(UTC)を表現した tm構造体の値を gmtime関数で得られる。また、ローカル時間(地域時間)の値を localtime関数で得られる。
tm構造体の値を基にして time_t型の値を生成する mktime関数がある。
asctime関数を使うと、tm構造体の値を文字列形式に変換することができる。
解説章 第51章


参考リンク

更新履歴

'2018/1/22 新規作成。





標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ


このエントリーをはてなブックマークに追加
rss1.0 取得ボタン RSS