std::chrono::operator+, std::chrono::operator- (std::chrono::month)
提供: cppreference.com
constexpr std::chrono::month operator+(const std::chrono::month& m, const std::chrono::months& ms)noexcept; | (1) | (C++20以上) |
constexpr std::chrono::month operator+(const std::chrono::months& ms, const std::chrono::month& m)noexcept; | (2) | (C++20以上) |
constexpr std::chrono::month operator-(const std::chrono::month& m, const std::chrono::months& ms)noexcept; | (3) | (C++20以上) |
constexpr std::chrono::months operator-(const std::chrono::month& m1, const std::chrono::month& m2)noexcept; | (4) | (C++20以上) |
1-2)
m
に ms.count()
ヶ月を加算します。 結果の月の値は、まず static_cast<longlong>(unsigned(m))+(ms.count()-1) が計算され、それを12で割った剰余を取って範囲 [0, 11] 内の整数に縮小し、その後1が加算されます。3)
m
から ms.count()
ヶ月を減算し、その結果を返します。 return m +-ms; と同等です。4)m1.ok() と m2.ok() がどちらも true であれば、
m.count()
が範囲 [0, 11] 内かつ m2 + m == m1 であるような std::chrono::months の値 m
を返します。 そうでなければ、戻り値は未規定です。目次 |
[編集]戻り値
1-3) 上の説明通りに計算された月の値を保持する std::chrono::month。
4)
m1
と m2
の差を表す std::chrono::months。[編集]ノート
計算がオーバーフローしない限り、 (1-3) は必ず、 m.ok() が false であっても、有効な月を返します。
2つの month
の値の減算の結果は、 std::chrono::months 型の duration です。 この duration の単位は平均的なグレゴリオ暦の1ヶ月の長さを表し、結果の duration は引数が表す特定の月の日数とは無関係です。 例えば、 std::chrono::seconds(std::chrono::April- std::chrono::March) は3月の秒数 (2678400s) ではなく、 2629746s (30.436875 日) になります。
[編集]例
This section is incomplete Reason: no example |
[編集]関連項目
月をインクリメントまたはデクリメントします (パブリックメンバ関数) | |
月数を加算または減算します (パブリックメンバ関数) |