day
クラス
月の日付を表します。 たとえば、ある月の 25 日などです。
構文
class day; // C++20
解説
day
は、通常、[1, 31] の範囲の値を保持します。 負でない値をこの範囲外に保持することはできますが、[0, 255] の範囲内にない場合、動作は指定されません。
メンバー
名前 | 説明 |
---|---|
コンストラクター | day を構築します。 |
ok |
日付の値が有効な範囲 [1, 31] 内にあることを確認します。 |
operator++ |
この day をインクリメントします。 |
operator+= |
指定された日数をこの day に追加します。 |
operator-- |
day をデクリメントします。 |
operator-= |
指定された日数をこの day から減算します |
operator unsigned |
日付の値を符号なし整数として取得します。 |
非メンバー
名前 | 説明 |
---|---|
from_stream |
指定した形式を使用して、指定したストリームから day を解析します。 |
operator+ |
指定された日数をこの day に追加して、新しい day オブジェクトを返します。 |
operator- |
指定した日数をこの day から減算し、新しい day オブジェクトを返します。 |
operator== |
2 つの day インスタンスが等しいかどうかを判断します。 |
operator<=> |
この day を別の day と比較します。 演算子 >, >=, <=, <, != はコンパイラによって合成されます。 |
operator<< |
指定したストリームに day を出力します。 |
operator""d |
月の日付に対して day リテラルを作成します。 |
要件
Header: <chrono>
(C++20 以降)
名前空間: std::chrono
コンパイラ オプション: /std:c++latest
コンストラクター
day
を構築します。
1) day() = default;
2) explicit constexpr day(unsigned d) noexcept;
パラメーター
d
day
を値 d
を使用して構築します。
解説
1) 既定のコンストラクターは、日付の値を初期化しません。
2) d
に初期化された日の値を使用して、day
を構築します。
例: day
を作成する
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
day d{1}; // day 1
day d2 = 2d; // day 2
std::cout << d << ", " << d2;
return 0;
}
01, 02
ok
この day
に格納された値の範囲が有効であるかを確認します。
constexpr bool ok() const noexcept;
戻り値
日の値が [1, 31] の範囲内にある場合は true
です。 それ以外の場合は false
。
operator++
日付値に 1 をインクリメントします。
1) constexpr std::chrono::day& operator++() noexcept;
2) constexpr std::chrono::day operator++(int) noexcept;
戻り値
1) *this
day
後 への参照がインクリメントされた (後置インクリメント)。
2) インクリメント前の day
のコピー (前置インクリメント)。
例: operator++
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
day d{1};
std::cout << d << " " << ++d << "\n"; // constexpr day& operator++() noexcept
std::cout << d << " " << d++ << "\n"; // constexpr day operator++(int) noexcept
std::cout << d;
return 0;
}
01 02
02 02
03
解説
インクリメントされた結果が [0, 255] の範囲外の場合、格納されている値は指定されません。
operator--
日付の値から 1 を減算します。
1) constexpr std::chrono::day& operator--() noexcept;
2) constexpr std::chrono::day operator--(int) noexcept;
戻り値
1) デクメント後の *this
の日への参照 (後置デクリメント)。
2) デクリメント前の *day
のコピー (前置デクリメント)。
例: operator--
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
int main()
{
day d{5};
std::cout << d << " " << --d << "\n"; // constexpr day& operator--() noexcept
std::cout << d << " " << d-- << "\n"; // constexpr day operator--(int) noexcept
std::cout << d << "\n";
return 0;
}
05 04
04 04
03
解説
デクリメントされた結果が [0, 255] の範囲外の場合、格納されている値は指定されません。
operator+=
この day
に日数を加算します。
constexpr day& operator+=(const days& d) noexcept;
パラメーター
d
追加する日数です。
戻り値
*this
結果が [0, 255] の範囲外の場合、格納されている値は指定されません。
operator-=
この day
から日を減算します。
constexpr day& operator-=(const days& d) noexcept;
パラメーター
d
減算する日数。
戻り値
*this
. 結果が [0, 255] の範囲外の場合、格納されている値は指定されません。
operator unsigned
day
値を取得します。
explicit constexpr operator unsigned() const noexcept;
戻り値
day
タグの値
例: operator unsigned()
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
int main()
{
chrono::day d{14d};
unsigned dayValue = static_cast<unsigned>(d);
cout << dayValue << "\n";
return 0;
}
14
関連項目
<chrono>
month_day
クラス
month_day_last
クラス
year_month_day
year_month_day_last
ヘッダー ファイル リファレンス