構造体 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 t;
struct tm *t_st;
t.tm_year = 101; /* 2001年 */
t.tm_mon = 4; /* 5月 */
t.tm_mday = 20; /* 20日 */
t.tm_wday = 0; /* 日曜日 */
t.tm_hour = 14; /* 14時 */
t.tm_min = 20; /* 20分 */
t.tm_sec = 0; /* 00秒 */
t.tm_isdst= -1; /* 夏時間無効 */
/* 構造体を時刻に変換 */
timer = mktime(&t);
printf("時刻 : %ld\n",timer);
/* 再変換して確認 */
t_st = localtime(&timer);
printf("年 : %d\n",t_st->tm_year+1900);
printf("月 : %d\n",t_st->tm_mon+1);
printf("日 : %d\n",t_st->tm_mday);
printf("曜日: %d\n",t_st->tm_wday);
printf("時 : %d\n",t_st->tm_hour);
printf("分 : %d\n",t_st->tm_min);
printf("秒 : %d\n",t_st->tm_sec);
return 0;
}
【実行結果例】
時刻 : 990368400 年 : 2001 月 : 5 日 : 20 曜日: 0 時 : 14 分 : 20 秒 : 0
▼戻る▼
「初心者のためのポイント学習C言語」 Copyright(c) 2000-2004 TOMOJI All Rights Reserved