次の方法で共有


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 月の 1 日の day リテラルを作成します。

要求事項

Header:<chrono> (C++20 以降)

Namespace:std::chrono

コンパイラ オプション:/std:c++latest

コンストラクター

day を構築します。

1) day() = default;
2) explicit constexpr day(unsigned d) noexcept;

パラメーター

d
dayを使用してdを構築します。

注釈

1) 既定のコンストラクターは、日の値を初期化しません。
2) dayに初期化された日の値を持つdを構築します。

例: 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;

戻り値

true 日の値が [1,31] の範囲内にある場合。 それ以外の場合は false

operator++

日の値に 1 を追加します。

1) constexpr std::chrono::day& operator++() noexcept;
2) constexpr std::chrono::day operator++(int) noexcept;

戻り値

1) *thisdayがインクリメントされた (後置インクリメント) への参照。
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
ヘッダー ファイル リファレンス