14namespace sc = ::std::chrono;
19 : start_time_(sc::system_clock::now()),
20 end_time_(sc::system_clock::now()) {}
28 const sc::system_clock::duration dur = end_time_ - start_time_;
31 const std::int64_t sec = sc::duration_cast<sc::seconds>(dur).count();
34 const std::int64_t milli_sec =
35 sc::duration_cast<sc::milliseconds>(dur).count();
37 return static_cast<double>(sec) +
static_cast<double>(milli_sec) / 1000.0;
42 const sc::system_clock::duration dur = end_time_ - start_time_;
45 const std::int64_t milli_sec =
46 sc::duration_cast<sc::milliseconds>(dur).count();
49 const std::int64_t usec = sc::duration_cast<sc::microseconds>(dur).count();
51 return static_cast<double>(milli_sec) +
static_cast<double>(usec) / 1000.0;
56 const sc::system_clock::duration dur = end_time_ - start_time_;
59 const std::int64_t usec = sc::duration_cast<sc::microseconds>(dur).count();
61 return static_cast<double>(usec);
78 sc::system_clock::time_point now = std::chrono::system_clock::now();
79 time_t now_time = std::chrono::system_clock::to_time_t(now);
81 localtime_s(&now_tm, &now_time);
82 char now_time_str[64];
83 strftime(now_time_str,
sizeof(now_time_str),
"%Y%m%d_%H%M_%S", &now_tm);
84 return std::string(now_time_str);
Stopwatch()
コンストラクタ 現在時刻で初期化する.
std::string GetElapsedMilliSecondString() const
経過時間をミリ秒で表した文字列を取得する.
double GetElapsedSeconds() const
経過時間を秒で取得. start()と end()を呼び出してからこの関数を呼ぶ.
std::string GetElapsedSecondsString() const
経過時間を秒で表した文字列を取得する.
double GetElapsedMilliSecond() const
計測結果をミリ秒で取得. start()と end()を呼び出してからこの関数を呼ぶ.
double GetElapsedMicroSecond() const
計測結果をマイクロ秒で取得. start()と end()を呼び出してからこの関数を呼ぶ.
std::string GetNowTimeString() const
現在の日時をYYYY/MM/DD HH:MM形式の文字列で取得する.
void Start()
計測開始にこの関数を呼ぶ. リセット処理などを呼ぶ必要なしで,再度計測できる.
std::string GetElapsedMicroSecondString() const
経過時間をマイクロ秒で表した文字列を取得する.
std::string FloatingPointNumToString(const T num, const int digit=kDigit, const int width=kWidth)
小数を文字列に変換する関数. C++ では C のフォーマットのように %3.3f とかで小数を文字列に変換できないため自作する.