weekday
kelas
Mewakili hari dalam seminggu dalam kalender Gregorian. Misalnya, Selasa.
Sintaks
class weekday; // C++20
Keterangan
weekday
Dapat menyimpan nilai [0, 255], tetapi biasanya menyimpan nilai [0, 6] untuk mewakili hari dalam seminggu.
Lihat Konstanta hari kerja, di bawah ini, untuk konstanta yang dapat Anda gunakan dengan weekday
kelas .
Anggota
Nama | Deskripsi |
---|---|
Konstruktor | weekday Buat . |
c_encoding |
Dapatkan nilainya weekday . |
iso_encoding |
Dapatkan nilai ISO 8601 weekday . |
ok |
Periksa apakah weekday nilainya valid. |
operator++ |
Menaikkan weekday . |
operator+= |
Tambahkan jumlah hari kerja yang ditentukan ke ini weekday . |
operator-- |
Dekremen weekday . |
operator-= |
Kurangi jumlah hari kerja yang ditentukan dari ini weekday . |
operator[] |
Buat weekday_indexed atau weekday_last dari ini weekday . |
Non-anggota
Nama | Deskripsi |
---|---|
from_stream |
Uraikan weekday dari aliran yang diberikan menggunakan format yang ditentukan. |
operator+ |
Tambahkan jumlah hari kerja yang ditentukan ke ini weekday . |
operator- |
Kurangi jumlah hari kerja yang ditentukan dari ini weekday , atau temukan perbedaan antara dua weekday objek. |
operator== |
Tentukan apakah dua weekday objek sama. |
operator<< |
Keluarkan weekday ke aliran. |
Persyaratan
Header: <chrono>
Sejak C++20
kumpulan nama XML: std::chrono
Opsi Pengkompilasi: /std:c++latest
Konstruktor
Membangun sebuah weekday
.
1) weekday() = default; // C++20
2) explicit constexpr weekday(unsigned wd) noexcept; // C++20
3) constexpr weekday(const sys_days& dp) noexcept; // C++20
4) explicit constexpr weekday(const local_days& dp) noexcept; // C++20
Parameter
dp
Buat weekday
menggunakan hari dalam seminggu dp
.
wd
Buat weekday
dengan nilai wd
.
Keterangan
1) Konstruktor default tidak menginisialisasi nilai hari kerja.
2) Buat weekday
dengan nilai yang ditentukan.
Jika wd
adalah 7, weekday
dibangun dengan nilai 0.
Jangan inisialisasi dengan nilai di atas 255 atau yang dihasilkan weekday
akan memiliki nilai yang tidak ditentukan.
3) Menghitung hari dalam seminggu apa yang sesuai dengan std::chrono::sys_days
nilai dp
, dan membangun weekday
penggunaan hari itu.
4) Menghitung hari dalam seminggu yang sesuai dengan std::chrono::local_days
nilai dp
, dan membangun weekday
penggunaan hari itu. Ini berulah seolah-olah Anda membuat weekday
menggunakan weekday(std::chrono::sys_days(dp.time_since_epoch()))
.
Contoh: Membuat weekday
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
weekday wd{ Wednesday };
weekday wd2{ 3 };
std::cout << wd << '\n' << wd2;
return 0;
}
Wednesday
Wednesday
c_encoding
constexpr unsigned c_encoding() const noexcept;
Nilai hasil
Nilai hari kerja.
iso_encoding
Nilai hari kerja, tetapi dengan Hari Minggu (0) ditafsirkan sebagai 7 per ISO 8601.
constexpr unsigned iso_encoding() const noexcept;
Nilai hasil
Nilai hari kerja.
ok
Periksa apakan nilai yang disimpan dalam weekday
ini berada dalam rentang yang valid.
constexpr bool is_leap() const noexcept;
Nilai hasil
true
jika nilai hari kerja berada dalam rentang [0, 6]. Sebaliknya, false
.
operator++
Tambahkan 1 ke nilai hari kerja.
1) constexpr std::chrono::weekday& operator++() noexcept;
2) constexpr std::chrono::weekday operator++(int) noexcept;
Nilai hasil
1) Referensi ke *this
hari kerja setelah ditingkatkan (kenaikan postfix).
2) Salinan weekday
, sebelum dinaikkan (kenaikan awalan).
Contoh: operator++
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main()
{
std::chrono::weekday wd{Thursday};
std::cout << wd << " " << ++wd << "\n"; // constexpr weekday& operator++() noexcept
std::cout << wd << " " << wd++ << "\n"; // constexpr weekday operator++(int) noexcept
std::cout << wd << "\n";
return 0;
}
Thu Fri
Fri Fri
Sat
Keterangan
Nilai bertahas adalah modulo 7. Ini akan selalu berada di kisaran [0, 6].
operator--
Kurangi 1 dari weekday
nilai .
1) constexpr std::chrono::weekday& operator--() noexcept;
2) constexpr std::chrono::weekday operator--(int) noexcept;
Nilai hasil
1) Referensi ke *this
weekday
setelah direkam (penurunan pascafiks).
2) Salinan weekday
sebelum dinyatakan (keputusan awalan).
Contoh: operator--
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main()
{
weekday y = weekday{Thursday};
cout << y << " " << --y << "\n"; // constexpr weekday& operator--() noexcept
cout << y << " " << y-- << "\n"; // constexpr weekday operator--(int) noexcept
cout << y << "\n";
return 0;
}
Thu Wed
Wed Wed
Tue
Keterangan
Jika hasil yang dinyatakan kurang dari 0, hasilnya diatur ke 6.
operator+=
Tambahkan hari ke weekday
.
constexpr weekday& operator+=(const days& d) noexcept;
Parameter
*d*
Jumlah hari yang akan ditambahkan.
Nilai hasil
Nilai dari *this + d
. Hasilnya adalah modulo 7, dalam rentang [0, 6].
operator-=
Kurangi hari dari weekday
.
constexpr weekday& operator-=(const days& d) noexcept;
Parameter
*d*
Jumlah hari yang akan dikurangi.
Nilai hasil
Nilai dari *this - d
. Hasilnya adalah modulo 7, dalam rentang [0, 6].
operator[]
Buat weekday_indexed atau weekday_last dari ini weekday
.
1) std::chrono::weekday_indexed(*this, index) // C++20
2) std::chrono::weekday_last(*this) // C++20
Nilai hasil
1) std::chrono::weekday_indexed(*this, index)
2) std::chrono::weekday_last(*this)
Contoh: operator[]
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main()
{
constexpr auto firstMondayInJanuary =
year_month_day{ Monday[2] / January / 2021y };
std::cout << firstMondayInJanuary << "\n";
constexpr auto lastMondayInJanuary =
year_month_day{ Tuesday[last] / January / 2021y };
std::cout << lastMondayInJanuary << "\n";
}
2021-01-11
2021-01-26
Konstanta hari kerja
(C++20) Header <chrono>
menentukan konstanta berikut yang dapat Anda gunakan untuk weekday
kenyamanan, keamanan jenis, dan ketahanan kode Anda yang lebih besar. Konstanta ini berada dalam cakupan ketika std::chrono
berada dalam cakupan.
// Calendrical constants
inline constexpr std::chrono::weekday Sunday{0};
inline constexpr std::chrono::weekday Monday{1};
inline constexpr std::chrono::weekday Tuesday{2};
inline constexpr std::chrono::weekday Wednesday{3};
inline constexpr std::chrono::weekday Thursday{4};
inline constexpr std::chrono::weekday Friday{5};
inline constexpr std::chrono::weekday Saturday{6};
Lihat juga
weekday_last
class
weekday_indexed
class
<chrono>
Referensi File Header