この型は普通のlong型です。time.hの中で定義されていて、通常は秒数を表 わす。
この型では、時間をtmという構造体で表現する。プログラムで使用する数値 として、分の値だけ欲しいとか日付の値だけ欲しいというときに利用する。
Fri Sep 15 02:30:24 1997 という形式の表現です。
システム時刻などの表現に使う。この構造体には、ミリ秒単位の部分の値や、 サマータイムの調整の有無、タイムゾーンごとのグリニッジ標準時との時間 差などのデータも入っている。時間の値というよりは時間関連の設定値の確 認などに利用する。
time()関数を利用すると、現在時刻はtime_t型の値として取ってくること ができる。time()関数で取ってきた値は、グリニッジ標準時の1970年1月1日 の午前0時0分0秒からの秒数です。しかも、この値は日本の現在時刻ではな いので、注意が必要。
#include <time.h> time_t NOW; time(&NOW); struct tm *NowTm; NowTm = localtime(&NOW); char *NowTmchar; NowTimeChar = asctime(NowTm); printf(``Now = \%s'', NowTimeChar);
time()関数で取得した時刻を日本時間に変換し、データとして利用するために、 tm型に変換を行なう。localtime()関数により日本時間に調整された現在時間が 得られる。tm構造体は以下の様になっている。
struct tm{ tm_sec; 秒 (0〜59) tm_min; 分 (0〜59) tm_hour; 時 (0〜23) tm_mday; 日 (0〜31) mday = day of month tm_mon; 月 (0〜11) 1月が0、12月が11となる。 tm_year; 年 (0〜 ) 西暦から1900を引いた値 tm_wday; 曜日 (0〜6) 日曜日が0。 tm_yday; 日数 (0〜365) 年の最初から数えた経過日数。 tm_isdst; サマータイムの場合は0以外の値。サマータイムを採用していな い場合は0となる。 };