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
類別