6 #ifndef AMDAEMON_UTIL_TIMESPAN_H 7 #define AMDAEMON_UTIL_TIMESPAN_H 69 static_cast<value_type>(1000),
85 static_cast<value_type>(1000) * 1000);
99 static_cast<value_type>(1000) * 1000,
115 static_cast<value_type>(1000) * 1000 * 60);
129 static_cast<value_type>(1000) * 1000 * 60,
145 static_cast<value_type>(1000) * 1000 * 60 * 60);
159 static_cast<value_type>(1000) * 1000 * 60 * 60,
175 static_cast<value_type>(1000) * 1000 * 60 * 60 * 24);
189 static_cast<value_type>(1000) * 1000 * 60 * 60 * 24,
198 template<
class TCount,
class TPeriod>
203 std::chrono::duration_cast<std::chrono::microseconds>(duration).count());
359 return value /
static_cast<value_type
>(1000);
366 return value / (
static_cast<value_type
>(1000) * 1000);
373 return value / (
static_cast<value_type
>(1000) * 1000 * 60);
380 return value / (
static_cast<value_type
>(1000) * 1000 * 60 * 60);
387 return value / (
static_cast<value_type
>(1000) * 1000 * 60 * 60 * 24);
476 value_type* hours =
nullptr,
477 value_type* minutes =
nullptr,
478 value_type* seconds =
nullptr,
479 value_type* milliseconds =
nullptr,
480 value_type* microseconds =
nullptr)
const;
523 std::wstring
toString(
const wchar_t* format =
nullptr)
const;
533 return (*
this =
add(*
this, r));
544 return (*
this =
subtract(*
this, r));
660 #endif // AMDAEMON_UTIL_TIMESPAN_H static bool tryMultiply(const TimeSpan &span, value_type value, TimeSpan &result)
TimeSpan 値に整数値を乗算する。
bool operator<=(const TimeSpan &l, const TimeSpan &r)
小なり等価比較演算子のオーバロード。
Definition: TimeSpan.h:643
static TimeSpan zero()
ゼロ値のインスタンスを作成する。
Definition: TimeSpan.h:208
bool isMinus() const
負数であるか否かを取得する。
Definition: TimeSpan.h:450
static TimeSpan min()
表現可能な最小値を持つインスタンスを作成する。
Definition: TimeSpan.h:216
static TimeSpan fromSeconds(value_type seconds)
秒数値からインスタンスを作成する。
Definition: TimeSpan.h:80
static bool tryAdd(const TimeSpan &span1, const TimeSpan &span2, TimeSpan &result)
2つの TimeSpan 値を加算する。
TimeSpan & operator-=(const TimeSpan &r)
減算代入演算子のオーバロード。
Definition: TimeSpan.h:542
static bool tryFromMinutes(value_type minutes, TimeSpan &result)
分数値からインスタンスを作成する。
Definition: TimeSpan.h:124
value_type toMicroseconds() const
マイクロ秒数値に変換する。
Definition: TimeSpan.h:350
static TimeSpan fromMinutes(value_type minutes)
分数値からインスタンスを作成する。
Definition: TimeSpan.h:110
value_type getPartOfMicroseconds() const
マイクロ秒数パート値を取得する。
Definition: TimeSpan.h:399
static TimeSpan negate(const TimeSpan &span)
TimeSpan 値の符号を反転させた値を算出する。
Definition: TimeSpan.h:266
AM Daemon ライブラリクラス群の基底名前空間。
Definition: Log.h:13
static bool trySubtract(const TimeSpan &span1, const TimeSpan &span2, TimeSpan &result)
TimeSpan 値から別の TimeSpan 値を減算する。
TimeSpan operator+(const TimeSpan &u)
単項プラス演算子のオーバロード。
Definition: TimeSpan.h:558
static bool tryFromDays(value_type days, TimeSpan &result)
日数値からインスタンスを作成する。
Definition: TimeSpan.h:184
value_type getPartOfMilliseconds() const
ミリ秒数パート値を取得する。
Definition: TimeSpan.h:406
std::int64_t value_type
内部値の表現型。
Definition: TimeSpan.h:32
bool operator>=(const TimeSpan &l, const TimeSpan &r)
大なり等価比較演算子のオーバロード。
Definition: TimeSpan.h:653
static TimeSpan add(const TimeSpan &span1, const TimeSpan &span2)
2つの TimeSpan 値を加算する。
static TimeSpan multiply(const TimeSpan &span, value_type value)
TimeSpan 値に整数値を乗算する。
value_type value
マイクロ秒数値。
Definition: TimeSpan.h:35
bool operator<(const TimeSpan &l, const TimeSpan &r)
小なり比較演算子のオーバロード。
Definition: TimeSpan.h:623
bool operator>(const TimeSpan &l, const TimeSpan &r)
大なり比較演算子のオーバロード。
Definition: TimeSpan.h:633
static bool tryFromSeconds(value_type seconds, TimeSpan &result)
秒数値からインスタンスを作成する。
Definition: TimeSpan.h:94
std::wstring toString(const wchar_t *format=nullptr) const
文字列表現値を作成する。
static TimeSpan fromHours(value_type hours)
時数値からインスタンスを作成する。
Definition: TimeSpan.h:140
std::chrono::microseconds toDuration() const
時間間隔値に変換する。
Definition: TimeSpan.h:392
static TimeSpan max()
表現可能な最大値を持つインスタンスを作成する。
Definition: TimeSpan.h:223
void toParts(value_type *days, value_type *hours=nullptr, value_type *minutes=nullptr, value_type *seconds=nullptr, value_type *milliseconds=nullptr, value_type *microseconds=nullptr) const
パート分割された時間間隔値を取得する。
value_type getPartOfSeconds() const
秒数パート値を取得する。
Definition: TimeSpan.h:413
static bool tryClock(TimeSpan &result, bool forceStdClock=false)
経過時間の計算に利用できるクロック時間からインスタンスを作成する。
static TimeSpan divide(const TimeSpan &span, value_type value)
TimeSpan 値を整数値で除算する。
value_type toHours() const
時数値に変換する。
Definition: TimeSpan.h:378
static TimeSpan abs(const TimeSpan &span)
TimeSpan 値の絶対値を算出する。
Definition: TimeSpan.h:274
static TimeSpan fromMilliseconds(value_type milliseconds)
ミリ秒数値からインスタンスを作成する。
Definition: TimeSpan.h:53
value_type toMilliseconds() const
ミリ秒数値に変換する。
Definition: TimeSpan.h:357
value_type toMinutes() const
分数値に変換する。
Definition: TimeSpan.h:371
static bool tryFromHours(value_type hours, TimeSpan &result)
時数値からインスタンスを作成する。
Definition: TimeSpan.h:154
value_type getPartOfDays() const
日数パート値を取得する。
Definition: TimeSpan.h:434
bool isZero() const
ゼロ値であるか否かを取得する。
Definition: TimeSpan.h:442
value_type getPartOfMinutes() const
分数パート値を取得する。
Definition: TimeSpan.h:420
static TimeSpan clock(bool forceStdClock=false)
経過時間の計算に利用できるクロック時間からインスタンスを作成する。
bool operator==(const TimeSpan &l, const TimeSpan &r)
等価比較演算子のオーバロード。
Definition: TimeSpan.h:603
static TimeSpan fromDuration(const std::chrono::duration< TCount, TPeriod > &duration)
時間間隔値からインスタンスを作成する。
Definition: TimeSpan.h:199
TimeSpan & operator+=(const TimeSpan &r)
加算代入演算子のオーバロード。
Definition: TimeSpan.h:531
value_type toSeconds() const
秒数値に変換する。
Definition: TimeSpan.h:364
value_type toDays() const
日数値に変換する。
Definition: TimeSpan.h:385
static bool tryFromMilliseconds(value_type milliseconds, TimeSpan &result)
ミリ秒数値からインスタンスを作成する。
Definition: TimeSpan.h:64
TimeSpan operator-(const TimeSpan &u)
単項マイナス演算子のオーバロード。
Definition: TimeSpan.h:567
static TimeSpan fromMicroseconds(value_type microseconds)
マイクロ秒数値からインスタンスを作成する。
Definition: TimeSpan.h:40
bool operator!=(const TimeSpan &l, const TimeSpan &r)
非等価比較演算子のオーバロード。
Definition: TimeSpan.h:613
static TimeSpan fromDays(value_type days)
日数値からインスタンスを作成する。
Definition: TimeSpan.h:170
マイクロ秒精度の時間間隔を表す構造体。
Definition: TimeSpan.h:29
static TimeSpan subtract(const TimeSpan &span1, const TimeSpan &span2)
TimeSpan 値から別の TimeSpan 値を減算する。
value_type getPartOfHours() const
時数パート値を取得する。
Definition: TimeSpan.h:427