year_month_weekday
kelas
Mewakili tahun, bulan, dan hari kerja ke-n tertentu dalam sebulan.
Sintaks
class year_month_weekday; // C++20
Keterangan
year_month_weekday
mendukung aritmatika berorientasi bertahun-tahun dan berbulan-bulan, tetapi bukan aritmatika berorientasi hari. Untuk aritmatika berorientasi hari, gunakan sys_days
konversi untuk mengonversi ke sys_days
, yang mendukung aritmatika berorientasi hari.
year_month_weekday
adalah tipe kelas tata letak standar dan dapat disalin dengan mudah.
Anggota
Nama | Deskripsi |
---|---|
Constructor |
Buat year_month_weekday dengan bulan dan hari kerja yang ditentukan. |
index |
Dapatkan indeks hari kerja. |
month |
Dapatkan nilai bulan. |
ok |
Periksa apakah year_month_weekday valid. |
operator+= |
Tambahkan jumlah bulan atau tahun yang ditentukan. |
operator-= |
Kurangi jumlah bulan atau tahun yang ditentukan. |
operator local_days |
Dapatkan hitungan hari dari system_clock zaman ke ini year_month_weekday sebagai local_days . |
operator sys_days |
Dapatkan hitungan hari dari system_clock zaman ke ini year_month_weekday sebagai sys_days . |
weekday |
Dapatkan hari kerja. |
weekday_indexed |
Dapatkan [weekday_indexed ] yang disimpan dalam ini year_month_weekday . |
year |
Dapatkan tahun. |
Non-anggota
Nama | Deskripsi |
---|---|
operator+ |
Tambahkan bulan atau tahun. |
operator- |
Mengurangi bulan atau tahun. |
operator== |
Tentukan apakah dua year_month_weekday nilai sama. |
operator<< |
Keluarkan year_month_weekday ke aliran yang diberikan. |
Persyaratan
Header:<chrono>
(sejak C++20)
Ruang nama:std::chrono
Opsi Kompilator:/std:c++latest
Konstruktor
Membangun sebuah year_month_weekday
.
// 1)
year_month_weekday() = default
// 2)
constexpr year_month_weekday(const year& y, const month& m, const weekday_indexed& wdi) noexcept;
// 3)
constexpr explicit year_month_weekday(const local_days& dp) noexcept;
// 4)
constexpr year_month_weekday(const sys_days& dp) noexcept;
Parameter
m
Nilainya month
.
dp
A sys_days
atau local_days
wdi
Nilainya weekday
.
y
Nilainya year
.
Keterangan: Konstruktor
1) Konstruktor default tidak menginisialisasi bidang apa pun.
2) Membangun year_month_weekday
yang sesuai dengan yang ditentukan year
, , month
dan weekday_indexed
.
3) Membuat year_month_weekday
yang sesuai dengan tanggal yang diwakili oleh sys_days{dp.time_since_epoch()}
.
4) Membuat year_month_weekday
yang sesuai dengan tanggal yang diwakili oleh dp
. Untuk setiap year_month_weekday
(ymdl) yang ok()
merupakan true
, perbandingan dengan operator==
year_month_weekday{sys_days{ymdl}}
akan menjadi true
.
Untuk informasi tentang sintaks C++20 yang digunakan untuk menentukan tanggal, lihat operator/
Contoh: Membuat year_month_weekday
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_weekday ymw{1997y / January / Wednesday[1]};
std::cout << ymw << '\n';
return 0;
}
1997/Jan/Wed[1]
index
Dapatkan indeks minggu dari hari kerja dalam .year_month_weekday
constexpr unsigned index() const noexcept;
Nilai hasil
Indeks hari kerja. Misalnya, jika hari kerja adalah Rabu pertama dalam seminggu, indeks akan menjadi 1.
month
Dapatkan nilai bulan.
constexpr month month() const noexcept;
Nilai hasil
Nilainya month
.
ok
Periksa apakah nilai yang disimpan dalam ini year_month_weekday
valid. year
, , month
dan weekday_index
disimpan dalam ini year_month_weekday
semua harus ok
agar fungsi ini kembali true
. Jika tidak, kembalikan false
.
constexpr bool ok() const noexcept;
Nilai hasil
true
year_month_weekday
jika nilainya valid. Sebaliknya, false
.
A year_month_weekday
valid jika month
valid dan weekday_indexed
nilainya valid.
operator+=
Tambahkan bulan atau tahun ke ini year_month_weekday
.
1) constexpr year_month_weekday& operator+=(const months& m) noexcept;
2) constexpr year_month_weekday& operator+=(const years& y) noexcept;
Parameter
m
Jumlah bulan yang akan ditambahkan.
y
Jumlah tahun yang akan ditambahkan.
Nilai hasil
*this
yang mencerminkan hasil penambahan.
Contoh: operator+=
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_weekday ymw{1997y / January / Wednesday[1]};
std::cout << ymw << '\n';
ymw += months{1};
ymw += years{1};
std::cout << ymw << '\n';
return 0;
}
1997/Jan/Wed[1]
1998/Feb/Wed[1]
operator-=
Kurangi bulan atau tahun dari ini year_month_weekday
.
1) constexpr year_month_weekday& operator-=(const months& m) noexcept;
2) constexpr year_month_weekday& operator-=(const years& y) noexcept;
Parameter
m
Jumlah bulan yang akan dikurangi.
y
Jumlah tahun yang akan dikurangi.
Nilai hasil
*this
yang mencerminkan hasil pengurangan.
Contoh: operator-=
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_weekday ymw{1997y / January / Wednesday[1]};
std::cout << ymw << '\n';
ymw -= months{1};
ymw -= years{1};
std::cout << ymw << '\n';
return 0;
}
1997/Jan/Wed[1]
1995/Dec/Wed[1]
operator local_days
Dapatkan hitungan hari dari system_clock
zaman (1/1/1970)year_month_weekday
local_days
constexpr explicit operator local_days() const noexcept;
Nilai hasil
Jika ok()
, mengembalikan hitungan hari sebagai local_days{sys_days{*this}.time_since_epoch()}
. Jika tidak, nilai yang dikembalikan tidak ditentukan.
operator sys_days
Dapatkan hitungan hari dari system_clock
zaman (1/1/1970) ke ini year_month_day
sebagai sys_days
.
constexpr operator sys_days() const noexcept;
Nilai hasil
Jika ok()
, mengembalikan sys_days
yang menunjukkan tanggal yaitu (index() - 1) * 7
hari setelah yang pertama weekday()
dari year()/month()
. Jika index()
adalah 0
, yang dikembalikan sys_days
menunjukkan tanggal 7 hari sebelum yang pertama weekday()
dari year()/month()
.
weekday
Dapatkan yang weekday
disimpan di yang weekday_indexed
disimpan dalam ini year_month_weekday
.
constexpr weekday weekday() const noexcept;
Nilai hasil
Nilainya weekday
.
weekday_indexed
Dapatkan yang weekday_indexed
disimpan dalam ini year_month_weekday
.
constexpr weekday_indexed weekday_indexed() const noexcept;
Nilai hasil
Nilainya weekday_indexed
.
year
Dapatkan nilai tahun.
constexpr year year() const noexcept;
Nilai hasil
Nilainya year
.
Baca juga
<chrono>
year
year_month
year_month_day
year_month_day_last
year_month_weekday_last
operator/
Referensi File Header
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk