Bagikan melalui


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, , monthdan 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, , monthdan 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

trueyear_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_weekdaylocal_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