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 | month Buat . |
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
month
Buat .
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