最終更新日時:
が更新

履歴 編集

function
<ctime>

std::mktime

namespace std {
  time_t mktime(tm* timeptr);
}

概要

ローカル時間で表現されたカレンダー時間 (tm構造体) を、経過秒 (time_t) に変換する。

入力をUTCとして解釈するtimegmに対し、この関数は入力をローカル時間として解釈する。

効果

timeptrが指す構造体のカレンダー時間 (ローカル時間として表現される) を、time関数が返す値と同じエンコーディングの経過秒に変換する。

tm_wdaytm_ydayの元の値は無視され、それ以外のメンバは規定の範囲に制限されない。変換に成功した場合、tm_wdaytm_ydayは適切に設定され、その他のメンバは規定の範囲に正規化される。

戻り値

指定されたカレンダー時間をtime_t型の値として返す。

カレンダー時間がtime_tで表現できない場合、(time_t)(-1)を返す。

#include <ctime>
#include <iostream>

int main()
{
  // 2026年1月1日 (曜日は未設定)
  std::tm t{};
  t.tm_year = 2026 - 1900;
  t.tm_mon = 0;
  t.tm_mday = 1;

  std::mktime(&t);

  // mktimeによってtm_wdayが設定される (0が日曜、4は木曜)
  std::cout << t.tm_wday << std::endl;
}

出力

4

バージョン

言語

  • C++03

関連項目

  • timegm: UTCのカレンダー時間から経過秒を生成する
  • localtime: 経過秒からローカル時間のカレンダー時間を生成する
  • difftime: 2つの時間の差を計算する