添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
tp が指す構造体の時刻を、 time関数 が使う時刻と同じ形式の時刻に変換します。
構造体tmのメンバ値が、適正な値ではない場合は、mktime関数内で調節されます。
(ということは、曜日や年内の通し日数だけ空けておいて、この関数で適切な値を求めたりも
出来るわけです。)
struct tm *tp : tm構造体へのポインタ
構造体 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、この情報が得られないときに負] */
【戻り値】
正常時:変換された時刻 
異常時:(time_t)-1

【使用例】 #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

戻る