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
標頭檔參考