Bagikan melalui


month kelas

Mewakili sebulan dalam setahun. Misalnya, Juli.

Sintaks

class month; // C++20

Keterangan

Biasanya month menyimpan nilai dalam rentang [1, 12]. Ini juga dapat menyimpan nilai non-negatif di luar rentang ini. Lihat Konstanta bulan, di bawah ini, untuk konstanta yang dapat Anda gunakan dengan month kelas .

Anggota

Nama Deskripsi
Konstruktor monthBuat .
ok Verifikasi bahwa nilai bulan berada dalam rentang yang valid [1.12].
operator++ Menaikkan month.
operator+= Tambahkan jumlah bulan yang ditentukan ke ini month.
operator-- Keputusan ini month.
operator-= Kurangi jumlah bulan yang ditentukan dari ini month.
operator unsigned Dapatkan nilainya month .

Non-anggota

Nama Deskripsi
from_stream Uraikan month dari aliran yang diberikan menggunakan format yang ditentukan.
operator+ Tambahkan jumlah bulan yang ditentukan ke ini month, mengembalikan instans baru month .
operator- Kurangi jumlah bulan yang ditentukan dari bulan ini. Mengembalikan instans baru month .
operator== Tentukan apakah dua bulan sama.
operator<=> Bandingkan bulan ini dengan bulan lain. Operator >, >=, <=, <, != disintesis oleh pengkompilasi.
operator<< Keluarkan month ke aliran yang diberikan.

Persyaratan

Header: <chrono> (sejak C++20)

kumpulan nama XML: std::chrono

Opsi Pengkompilasi: /std:c++latest

Konstruktor

monthBuat .

1) month() = default;
2) explicit constexpr month(unsigned m) noexcept;

Parameter

m
Buat month dengan nilai m.

Keterangan

1) Konstruktor default tidak menginisialisasi nilai hari.
2) Buat month dengan nilai hari yang diinisialisasi ke m.

ok

Periksa apakan nilai yang disimpan dalam month ini berada dalam rentang yang valid.

constexpr bool ok() const noexcept;

Nilai hasil

true jika nilai bulan berada dalam rentang [1,12]. Sebaliknya, false.

operator++

Menaikkan nilai bulan.

1) constexpr month& operator++() noexcept;
2) constexpr month operator++(int) noexcept;

Nilai hasil

1) Referensi ke *this bulan setelah ditingkatkan (kenaikan postfix).
2) Salinan month, sebelum dinaikkan (kenaikan awalan).

Contoh: operator++

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

using namespace std::chrono;

int main()
{
    month m{ January };
    month m2{4}; // April

    std::cout << m << " " << ++m << "\n"; // constexpr month& operator++() noexcept
    std::cout << m << " " << m++ << "\n"; // constexpr month operator++(int) noexcept
    std::cout << m << "\n";
    std::cout << m2 << "\n";

    return 0;
}
Jan Feb
Feb Feb
Mar
Apr

Keterangan

Jika hasilnya melebihi 12, hasilnya diatur ke 1.

operator--

Kurangi 1 dari nilai bulan.

1) constexpr month& operator--() noexcept;
2) constexpr month operator--(int) noexcept;

Nilai hasil

1) Referensi ke *this month setelah direkam (penurunan pascafiks).
2) Salinan month sebelum dinyatakan (keputusan awalan).

Contoh: operator--

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

using namespace std;
using namespace std::chrono;

int main()
{
    month m{May};

    cout << m << " " << --m << "\n"; // constexpr month& operator++() noexcept
    cout << m << " " << m-- << "\n"; // constexpr month operator++(int) noexcept
    cout << m << "\n";

    return 0;
}
May Apr
Apr Apr
Mar

Keterangan

Jika hasil yang dinyatakan kurang dari 1, hasilnya diatur ke 12.

operator+=

Tambahkan bulan ke ini month.

constexpr month& operator+=(const months& m) noexcept;

Parameter

m
Jumlah bulan yang akan ditambahkan.

Nilai hasil

*this

operator-=

Kurangi months dari ini month.

constexpr month& operator-=(const months& m) noexcept;

Parameter

m
Bulan-bulan untuk dikurangi.

Nilai hasil

*this.

operator unsigned

Dapatkan nilai yang tidak ditandatangani month .

explicit constexpr operator unsigned() const noexcept;

Nilai hasil

Nilai yang tidak ditandatangani dari ini month

Contoh: operator unsigned()

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

using namespace std::chrono;

int main()
{
    month m{July};
    unsigned monthValue = static_cast<unsigned>(m);
    std::cout << monthValue << "\n";

    return 0;
}
7

Konstanta bulan

(C++20) Header <chrono> menentukan konstanta berikut yang dapat Anda gunakan untuk month 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 month January{1};
inline constexpr month February{2};
inline constexpr month March{3};
inline constexpr month April{4};
inline constexpr month May{5};
inline constexpr month June{6};
inline constexpr month July{7};
inline constexpr month August{8};
inline constexpr month September{9};
inline constexpr month October{10};
inline constexpr month November{11};
inline constexpr month December{12};

Lihat juga

<chrono>
month_day Kelas
month_day_last Kelas
month_weekday Kelas
month_weekday_last class