day
kelas
Mewakili hari dalam sebulan. Misalnya, hari ke-25 dalam sebulan.
Sintaks
class day; // C++20
Keterangan
Biasanya day
menyimpan nilai dalam rentang [1, 31]. Ini mungkin menyimpan nilai non-negatif di luar rentang ini, tetapi perilakunya tidak ditentukan jika tidak berada dalam rentang [0, 255].
Anggota
Nama | Deskripsi |
---|---|
Konstruktor | day Buat . |
ok |
Verifikasi bahwa nilai hari berada dalam rentang yang valid [1.31]. |
operator++ |
Kenaikan ini day . |
operator+= |
Tambahkan jumlah hari yang ditentukan ke ini day . |
operator-- |
Dekremen day . |
operator-= |
Kurangi jumlah hari yang ditentukan dari ini day |
operator unsigned |
Dapatkan nilai hari sebagai bilangan bulat yang tidak ditandatangani. |
Non-anggota
Nama | Deskripsi |
---|---|
from_stream |
Uraikan day dari aliran yang diberikan menggunakan format yang ditentukan. |
operator+ |
Tambahkan jumlah hari yang ditentukan ke ini day , mengembalikan objek baru day . |
operator- |
Kurangi jumlah hari yang ditentukan dari ini day , mengembalikan objek baru day . |
operator== |
Menentukan apakah dua instans day setara. |
operator<=> |
Bandingkan ini day dengan yang lain day . Operator >, >=, <=, <, != disintesis oleh pengkompilasi. |
operator<< |
Keluarkan day ke aliran yang diberikan. |
operator""d |
Buat day harfiah untuk hari dalam sebulan. |
Persyaratan
Header: <chrono>
(sejak C++20)
kumpulan nama XML: std::chrono
Opsi Pengkompilasi: /std:c++latest
Konstruktor
Membangun sebuah day
.
1) day() = default;
2) explicit constexpr day(unsigned d) noexcept;
Parameter
d
Buat day
dengan nilai d
.
Keterangan
1) Konstruktor default tidak menginisialisasi nilai hari.
2) Buat day
dengan nilai hari yang diinisialisasi ke d
.
Contoh: Membuat 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
Periksa apakan nilai yang disimpan dalam day
ini berada dalam rentang yang valid.
constexpr bool ok() const noexcept;
Nilai hasil
true
jika nilai hari berada dalam rentang [1,31]. Sebaliknya, false
.
operator++
Tambahkan 1 ke nilai hari.
1) constexpr std::chrono::day& operator++() noexcept;
2) constexpr std::chrono::day operator++(int) noexcept;
Nilai hasil
1) Referensi ke *this
day
setelah ditingkatkan (kenaikan postfix).
2) Salinan day
, sebelum dinaikkan (kenaikan awalan).
Contoh: 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
Keterangan
Jika hasil yang dinaikkan berada di luar rentang [0, 255], maka nilai tersimpan tidak ditentukan.
operator--
Kurangi 1 dari nilai hari.
1) constexpr std::chrono::day& operator--() noexcept;
2) constexpr std::chrono::day operator--(int) noexcept;
Nilai hasil
1) Referensi ke *this
hari setelah dinyatakan (penurunan pascafiks).
2) Salinan *day
, sebelum diturunkan (penurunan awalan).
Contoh: 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
Keterangan
Jika hasil yang dikurangi berada di luar rentang [0, 255], maka nilai tersimpan tidak ditentukan.
operator+=
Tambahkan hari ke ini day
.
constexpr day& operator+=(const days& d) noexcept;
Parameter
d
Jumlah hari yang akan ditambahkan.
Nilai hasil
*this
Jika hasilnya berada di luar rentang [0, 255], maka nilai tersimpan tidak ditentukan.
operator-=
Kurangi hari dari ini day
.
constexpr day& operator-=(const days& d) noexcept;
Parameter
d
Jumlah hari yang akan dikurangi.
Nilai hasil
*this
. Jika hasilnya berada di luar rentang [0, 255], maka nilai tersimpan tidak ditentukan.
operator unsigned
Dapatkan nilainya day
.
explicit constexpr operator unsigned() const noexcept;
Nilai hasil
Nilai day
Contoh: 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
Lihat juga
<chrono>
month_day
class
month_day_last
class
year_month_day
year_month_day_last
Referensi File Header