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== 判斷兩個 day 實例是否相等。
operator<=> day將此與另一個day比較。 運算子 >, >=, <=, <, != 是由編譯程式合成。
operator<< day將 輸出至指定的數據流。
operator""d 為月份中的一天建立常 day 值。

需求

標頭: <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;

傳回值

true 如果日期值位於範圍 [1,31]。 否則為 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
標頭檔參考