month 類別

表示一年中的一個月。 例如,7 月。

語法

class month; // C++20

備註

month通常會保留範圍 [1, 12] 中的值。 它也可以保留超出此範圍的非負值。 如需可與 類別搭配month使用的常數,請參閱下面的月份常數

成員

名稱 描述
建構函式 month建構 。
ok 確認月份值在有效範圍 [1,12]。
operator++ month遞增 。
operator+= 將指定的月數新增到這個 month
operator-- 遞減這個 month
operator-= 從這個 month減去指定的月數。
operator unsigned month取得值。

非成員

名稱 描述
from_stream month使用指定的格式,從指定的資料串流剖析 。
operator+ 將指定的月份數新增至這個 month,並傳回新的 month 實例。
operator- 從本月減去指定的月數。 傳回新的 month 執行個體。
operator== 判斷兩個月是否相等。
operator<=> 比較本月與另一個月。 運算子 >, >=, <=, <, != 是由編譯程式合成。
operator<< month將 輸出至指定的數據流。

需求

標頭: <chrono> (自C++20起)

命名空間std::chrono

編譯程序選項: /std:c++latest

建構函式

month建構 。

1) month() = default;
2) explicit constexpr month(unsigned m) noexcept;

參數

m
month使用 值m建構 。

備註

1) 預設建構函式不會初始化日期值。
2) 使用初始化為 m的日值建構 month

ok

檢查儲存在此 中的 month 值是否在有效範圍內。

constexpr bool ok() const noexcept;

傳回值

true 如果月份值在 [1,12] 範圍內,則為 。 否則為 false

operator++

遞增月份值。

1) constexpr month& operator++() noexcept;
2) constexpr month operator++(int) noexcept;

傳回值

1) 遞增後月份*this參考(後置遞增)。
2) 的 month複本, 然後 才遞增(前置遞增)。

範例: operator++

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    month m{ January };
    month m2{4}; // April

    std::cout << m << " " << ++m << "\n"; // constexpr month& operator++() noexcept
    std::cout << m << " " << m++ << "\n"; // constexpr month operator++(int) noexcept
    std::cout << m << "\n";
    std::cout << m2 << "\n";

    return 0;
}
Jan Feb
Feb Feb
Mar
Apr

備註

如果結果超過 12,則會將其設定為 1。

operator--

從月份值減去 1。

1) constexpr month& operator--() noexcept;
2) constexpr month operator--(int) noexcept;

傳回值

1) *this month 遞減后 參考 (後置遞減)。
2) 遞減前month複本(前置詞遞減)。

範例: operator--

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std;
using namespace std::chrono;

int main()
{
    month m{May};

    cout << m << " " << --m << "\n"; // constexpr month& operator++() noexcept
    cout << m << " " << m-- << "\n"; // constexpr month operator++(int) noexcept
    cout << m << "\n";

    return 0;
}
May Apr
Apr Apr
Mar

備註

如果遞減的結果小於 1,則會設定為 12。

operator+=

將月份新增至此 month

constexpr month& operator+=(const months& m) noexcept;

參數

m
要加入的月數。

傳回值

*this

operator-=

從這個 month減去 months

constexpr month& operator-=(const months& m) noexcept;

參數

m
要減去的月份。

傳回值

*this.

operator unsigned

取得未帶正負號 month 的值。

explicit constexpr operator unsigned() const noexcept;

傳回值

這個的不帶正負號值 month

範例: operator unsigned()

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    month m{July};
    unsigned monthValue = static_cast<unsigned>(m);
    std::cout << monthValue << "\n";

    return 0;
}
7

月份常數

(C++20)標頭 <chrono> 會定義下列常數,您可以搭配 month 使用,以取得程序代碼的便利性、類型安全性及可維護性。 當 在範圍內時 std::chrono ,這些常數位於範圍中。

// Calendrical constants
inline constexpr month January{1};
inline constexpr month February{2};
inline constexpr month March{3};
inline constexpr month April{4};
inline constexpr month May{5};
inline constexpr month June{6};
inline constexpr month July{7};
inline constexpr month August{8};
inline constexpr month September{9};
inline constexpr month October{10};
inline constexpr month November{11};
inline constexpr month December{12};

另請參閱

<chrono>
month_day
month_day_last
month_weekday
month_weekday_last 類別