year_month_weekday_last kelas

Tahun tertentu, bulan, dan hari kerja terakhir dalam sebulan.

Sintaks

class year_month_weekday_last; // C++20

Keterangan

year_month_weekday_last 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_last adalah tipe kelas tata letak standar dan dapat disalin dengan mudah.

Anggota

Nama Deskripsi
Constructor Buat year_month_weekday_last dengan bulan dan hari kerja yang ditentukan.
month Dapatkan nilai bulan.
ok Periksa apakah year_month_weekday_last 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_last sebagai local_days.
operator sys_days Dapatkan hitungan hari dari system_clock zaman ke ini year_month_weekday_last sebagai sys_days.
weekday Dapatkan hari kerja.
weekday_last Dapatkan yang weekday_last disimpan dalam ini year_month_weekday_last.
year Dapatkan tahun.

Non-anggota

Nama Deskripsi
operator+ Tambahkan bulan atau tahun.
operator- Mengurangi bulan atau tahun.
operator== Tentukan apakah dua year_month_weekday_last nilai sama.
operator<< Keluarkan year_month_weekday_last 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_last.

constexpr year_month_weekday_last(const year& y, const month& m, const weekday_last& wdl) noexcept

Parameter

m
Nilainya month .

wdl
Nilainya weekday_last .

y
Nilainya year .

Untuk informasi tentang sintaks C++20 yang digunakan untuk menentukan tanggal, lihat operator/

Contoh: Membuat year_month_weekday_last

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year_month_weekday_last ymwl{ 1997y / January / Wednesday[last] };
    std::cout << ymwl << '\n';
    
    return 0;
}
1997/Jan/Wed[last]

month

Dapatkan nilai bulan.

constexpr month month() const noexcept;

Nilai hasil

Nilainya month .

ok

Periksa apakah nilai yang disimpan dalam ini year_month_weekday_last valid. year, , monthdan weekday_last disimpan dalam ini year_month_weekday_last semua harus ok agar fungsi ini kembali true. Jika tidak, kembalikan false.

constexpr bool ok() const noexcept;

Nilai hasil

trueyear_month_weekday_last jika nilainya valid. Sebaliknya, false.
A year_month_weekday_last valid jika month, weekday_indexed, dan year semuanya valid.

operator+=

Tambahkan bulan atau tahun ke ini year_month_weekday_last.

1) constexpr year_month_weekday_last& operator+=(const months& m) noexcept;
2) constexpr year_month_weekday_last& 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_last ymwl{ year(1997) / January / Wednesday[last] };
    std::cout << ymwl << '\n';

    ymwl += months{ 1 };
    ymwl += years{ 1 };

    std::cout << ymwl << '\n';
    
    return 0;
}
1997/Jan/Wed[last]
1998/Feb/Wed[last]

operator-=

Kurangi bulan atau tahun dari ini year_month_weekday_last.

1) constexpr year_month_weekday_last& operator-=(const months& m) noexcept;
2) constexpr year_month_weekday_last& 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_last ymwl{ year(1997) / January / Wednesday[last] };
    std::cout << ymwl << '\n';

    ymwl -= months{ 1 };
    ymwl -= years{ 1 };

    std::cout << ymwl << '\n';
    
    return 0;
}
1997/Jan/Wed[last]
1995/Dec/Wed[last]

operator local_days

Dapatkan hitungan hari dari system_clock zaman (1/1/1970)year_month_weekday_lastlocal_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() == true, mengembalikan sys_days yang mewakili yang terakhir weekday()year() / month() (catatan: / adalah operator tanggal, bukan divisi). Jika tidak, nilai yang dikembalikan tidak ditentukan.

weekday

weekdayDapatkan .

constexpr weekday weekday() const noexcept;

Nilai hasil

weekday.

weekday_last

Dapatkan yang weekday_last disimpan dalam ini year_month_weekday_last.

constexpr weekday_indexed weekday_last() const noexcept;

Nilai hasil

weekday_last.

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
operator/
Referensi File Header