構造体 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