この関数の目的
mktime()は、展開時間を time_t 型に変換する。
定義
#include <time.h> time_t mktime(struct tm *timeptr);
働き
この関数は、 timeptr が指すオブジェクトの局所時間で表した展開時間を、
time() が返す値と同じ形式で返す。
構造体の tm_wday
および tm_yday
メンバの値は無視される。
他のメンバは time.h に書かれている値域に入っている必要はない。
成功裡に終了した場合は、構造体の tm_wday
および tm_yday
メンバには、適切な値が格納される。
その他のメンバについては、指定されたカレンダー時間の値を time.h の値域の中に入るように設定し直される。
tm_mday
の終端値は tm_mon
および tm_year
が決定されるまで設定されない。
返り値は、指定されたカレンダー時間を time_t 型としてエンコードしたものである。
カレンダー時間が表現不可能であった場合、返り値は (time_t)-1
である。
解説
何年何月何日何時何分何秒かが分かれば、それを time_t 型に変換してくれるのがこの関数だ。 struct tm 型のオブジェクトは自動変数(静的変数、ヒープ変数でもよいが)として確保し、それへのポインタを渡して使う。