名前空間
変種
操作

std::chrono::operator+, std::chrono::operator- (std::chrono::month)

提供: cppreference.com
< cpp‎ | chrono‎ | month
2022年12月28日 (水) 01:29時点におけるOlya (トーク | 投稿記録)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
 
 
ユーティリティライブラリ
汎用ユーティリティ
日付と時間
関数オブジェクト
書式化ライブラリ (C++20)
(C++11)
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)
スワップと型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
一般的な語彙の型
(C++11)
(C++17)
(C++17)
(C++17)
(C++17)

初等文字列変換
(C++17)
(C++17)
 
日付と時間のユーティリティ
(C++11)
(C++11)
時刻
(C++20)



(C++20)(C++20)(C++20)(C++20)
時計
(C++20)
                                             
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
カレンダー
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
タイムゾーン
(C++20)
(C++20)
(C++20)
(C++20)
C スタイルの日付と時間
 
 
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) mms.count() ヶ月を加算します。 結果の月の値は、まず static_cast<long long>(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) m1m2 の差を表す 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 日) になります。


[編集]

[編集] 関連項目

月をインクリメントまたはデクリメントします
(パブリックメンバ関数) [edit]
月数を加算または減算します
(パブリックメンバ関数) [edit]