Bagikan melalui


day kelas

Mewakili hari dalam sebulan. Misalnya, hari ke-25 dalam sebulan.

Sintaks

class day; // C++20

Keterangan

Biasanya day menyimpan nilai dalam rentang [1, 31]. Ini mungkin menyimpan nilai non-negatif di luar rentang ini, tetapi perilakunya tidak ditentukan jika tidak berada dalam rentang [0, 255].

Anggota

Nama Deskripsi
Konstruktor dayBuat .
ok Verifikasi bahwa nilai hari berada dalam rentang yang valid [1.31].
operator++ Kenaikan ini day.
operator+= Tambahkan jumlah hari yang ditentukan ke ini day.
operator-- Dekremen day.
operator-= Kurangi jumlah hari yang ditentukan dari ini day
operator unsigned Dapatkan nilai hari sebagai bilangan bulat yang tidak ditandatangani.

Non-anggota

Nama Deskripsi
from_stream Uraikan day dari aliran yang diberikan menggunakan format yang ditentukan.
operator+ Tambahkan jumlah hari yang ditentukan ke ini day, mengembalikan objek baru day .
operator- Kurangi jumlah hari yang ditentukan dari ini day, mengembalikan objek baru day .
operator== Menentukan apakah dua instans day setara.
operator<=> Bandingkan ini day dengan yang lain day. Operator >, >=, <=, <, != disintesis oleh pengkompilasi.
operator<< Keluarkan day ke aliran yang diberikan.
operator""d Buat day harfiah untuk hari dalam sebulan.

Persyaratan

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

kumpulan nama XML: std::chrono

Opsi Pengkompilasi: /std:c++latest

Konstruktor

Membangun sebuah day.

1) day() = default;
2) explicit constexpr day(unsigned d) noexcept;

Parameter

d
Buat day dengan nilai d.

Keterangan

1) Konstruktor default tidak menginisialisasi nilai hari.
2) Buat day dengan nilai hari yang diinisialisasi ke d.

Contoh: Membuat day

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

using namespace std::chrono;

int main()
{
    day d{1}; // day 1
    day d2 = 2d; // day 2

    std::cout << d << ", " << d2;

    return 0;
}
01, 02

ok

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

constexpr bool ok() const noexcept;

Nilai hasil

true jika nilai hari berada dalam rentang [1,31]. Sebaliknya, false.

operator++

Tambahkan 1 ke nilai hari.

1) constexpr std::chrono::day& operator++() noexcept;
2) constexpr std::chrono::day operator++(int) noexcept;

Nilai hasil

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

Contoh: operator++

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

using namespace std::chrono;

int main()
{
    day d{1};

    std::cout << d << " " << ++d << "\n"; // constexpr day& operator++() noexcept
    std::cout << d << " " << d++ << "\n"; // constexpr day operator++(int) noexcept
    std::cout << d;

    return 0;
}
01 02
02 02
03

Keterangan

Jika hasil yang dinaikkan berada di luar rentang [0, 255], maka nilai tersimpan tidak ditentukan.

operator--

Kurangi 1 dari nilai hari.

1) constexpr std::chrono::day& operator--() noexcept;
2) constexpr std::chrono::day operator--(int) noexcept;

Nilai hasil

1) Referensi ke *this hari setelah dinyatakan (penurunan pascafiks).
2) Salinan *day, sebelum diturunkan (penurunan awalan).

Contoh: operator--

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

int main()
{
    day d{5};
    std::cout << d << " " << --d << "\n"; // constexpr day& operator--() noexcept
    std::cout << d << " " << d-- << "\n"; // constexpr day operator--(int) noexcept
    std::cout << d << "\n";

    return 0;
}
05 04
04 04
03

Keterangan

Jika hasil yang dikurangi berada di luar rentang [0, 255], maka nilai tersimpan tidak ditentukan.

operator+=

Tambahkan hari ke ini day.

constexpr day& operator+=(const days& d) noexcept;

Parameter

d
Jumlah hari yang akan ditambahkan.

Nilai hasil

*this

Jika hasilnya berada di luar rentang [0, 255], maka nilai tersimpan tidak ditentukan.

operator-=

Kurangi hari dari ini day.

constexpr day& operator-=(const days& d) noexcept;

Parameter

d
Jumlah hari yang akan dikurangi.

Nilai hasil

*this. Jika hasilnya berada di luar rentang [0, 255], maka nilai tersimpan tidak ditentukan.

operator unsigned

Dapatkan nilainya day .

explicit constexpr operator unsigned() const noexcept;

Nilai hasil

Nilai day

Contoh: operator unsigned()

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

int main()
{
    chrono::day d{14d};
    unsigned dayValue = static_cast<unsigned>(d);
    cout << dayValue << "\n";
    
    return 0;
}
14

Lihat juga

<chrono>
month_day class
month_day_last class
year_month_day
year_month_day_last
Referensi File Header