構造体 tm はtime.h の中で宣言され、以下の情報を含みます struct tm { int tm_sec; /* 秒 [0-61] 最大2秒までのうるう秒を考慮 */ int tm_min; /* 分 [0-59] */ int tm_hour; /* 時 [0-23] */ int tm_mday; /* 日 [1-31] */ int tm_mon; /* 月 [0-11] 0から始まることに注意 */ int tm_year; /* 年 [1900からの経過年数] */ int tm_wday; /* 曜日 [0:日 1:月 ... 6:土] */ int tm_yday; /* 年内の通し日数 [0-365] 0から始まることに注意*/ int tm_isdst; /* 夏時間が無効であれば 0 */ };【使用例】
#include <stdio.h> #include <time.h> int main(void) { time_t timer; struct tm *jt; struct tm *gt; char *wday[] = {"日","月","火","水","木","金","土"}; /* 現在時刻の取得 */ time(&timer); /* 現在時刻をグリニッジ時間に変換 */ gt = gmtime(&timer); printf("グリニッジ時間\n"); printf("年 : %d\n",gt->tm_year+1900); printf("月 : %d\n",gt->tm_mon+1); printf("日 : %d\n",gt->tm_mday); printf("曜日: %s\n",wday[gt->tm_wday]); printf("時 : %d\n",gt->tm_hour); printf("分 : %d\n",gt->tm_min); printf("秒 : %d\n",gt->tm_sec); /* 現在時刻を日本時間に変換 */ jt = localtime(&timer); printf("\n日本時間\n"); printf("年 : %d\n",jt->tm_year+1900); printf("月 : %d\n",jt->tm_mon+1); printf("日 : %d\n",jt->tm_mday); printf("曜日: %s\n",wday[jt->tm_wday]); printf("時 : %d\n",jt->tm_hour); printf("分 : %d\n",jt->tm_min); printf("秒 : %d\n",jt->tm_sec); return 0; }【実行結果例】
グリニッジ時間 年 : 2001 月 : 5 日 : 20 曜日: 日 時 : 6 分 : 40 秒 : 48 日本時間 年 : 2001 月 : 5 日 : 20 曜日: 日 時 : 15 分 : 40 秒 : 48 (注)LSIC試食版でgmtimeを使っても日本時間しか得られ無い場合は、環境変数TZを set TZ=JST-9 としてください。
▼戻る▼
「初心者のためのポイント学習C言語」 Copyright(c) 2000-2004 TOMOJI All Rights Reserved