Bagikan melalui


year kelas

Mewakili setahun dalam kalender Gregorian.

Sintaks

class year; // C++20

Keterangan

Dapat year menyimpan nilai tahun antara -32767 hingga 32767.

Anggota

Nama Deskripsi
Konstruktor Membuat year
is_leap Tentukan apakah tahun ini adalah tahun kampung.
max Mengembalikan nilai tahun terbesar yang mungkin.
min Mengembalikan nilai tahun sekecil mungkin.
ok Verifikasi bahwa nilai tahun berada dalam rentang yang valid [-32767, 32767].
operator+ Nilai tambah unary.
operator++ Menaikkan tahun.
operator+= Tambahkan jumlah tahun yang ditentukan ke ini year.
operator- Minus tidak biasa.
operator-- Keputusan tahun ini.
operator-= Kurangi jumlah tahun yang ditentukan dari ini year.
operator int Dapatkan nilainya year .

Non-anggota

Nama Deskripsi
from_stream Mengurai year dari aliran menggunakan format yang ditentukan
operator+ Tambahkan tahun.
operator- Mengurangi tahun.
operator== Tentukan apakah dua tahun sama.
operator<=> Bandingkan ini year dengan yang lain year. Operator >, >=, <=, <, != disintesis oleh pengkompilasi.
operator<< Keluarkan year ke aliran yang diberikan.
operator""y Buat year harfiah.

Persyaratan

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

kumpulan nama XML: std::chrono

Opsi Pengkompilasi: /std:c++latest

Konstruktor

yearBuat .

1) year() = default;
2) explicit constexpr year(unsigned y) noexcept;

Parameter

y
Buat year dengan nilai y.

Keterangan

1) Konstruktor default tidak menginisialisasi year nilai.
2) Buat year dengan nilai yang ditentukan.

Contoh: Membuat year

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

using namespace std::chrono;

int main()
{
    year y{2020};
    year y2 = 2021y;
    
    std::cout << y << ", " << y2;

    return 0;
}
2020, 2021

is_leap

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

constexpr bool is_leap() const noexcept;

Nilai hasil

true jika nilai tahun adalah tahun kampung. Sebaliknya, false. Tahun kampung adalah tahun yang dapat dibagi dengan 4 tetapi tidak 100 --atau dibagi dengan 400.

max

Mengembalikan tahun terbesar yang mungkin.

static constexpr year max() noexcept;

Nilai hasil

year{32767}

min

Mengembalikan tahun sekecil mungkin.

static constexpr year min() noexcept;

Nilai hasil

year{-32767}

ok

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

constexpr bool ok() const noexcept;

Nilai hasil

true jika nilai tahun berada dalam rentang [-32676, 32767]. Sebaliknya, false.

operator+

Terapkan nilai tambah unary.

constexpr year operator+() const noexcept;

Nilai hasil

Mengembalikan *this

Contoh: unary operator+

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

using namespace std::chrono;

int main()
{
   year y{-1};
   std::cout << +y;
   return 0;
}
-0001

operator++

Tambahkan 1 ke nilai tahun.

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

Nilai hasil

1) Mengembalikan referensi ke tahun ini setelah ditingkatkan (kenaikan postfix).
2) Mengembalikan salinan year, sebelum dinaikkan (kenaikan awalan).

Contoh: operator++

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

using namespace std::chrono;

int main()
{
    year y{2021};

    std::cout << y << " " << ++y << "\n"; // constexpr year& operator++() noexcept
    std::cout << y << " " << y++ << "\n"; // constexpr year operator++(int) noexcept
    std::cout << y << "\n";
    return 0;
}
2021 2022
2022 2022
2023

Keterangan

Jika hasil yang bertahap melebihi 32767, hasilnya meluap ke -32768

operator-

Minus tidak biasa. Meniadakan year.

constexpr year operator-() const noexcept; // C++20

Nilai hasil

Mengembalikan salinan yang dinegasikan dari year.

Contoh: unary operator-

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

using namespace std::chrono;

int main()
{
   year y{1977};
   std::cout << -y << '\n';

   return 0;
}
-1977

operator--

Kurangi 1 dari nilai tahun.

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

Nilai hasil

1) Referensi untuk ini year setelah dinyatakan (penurunan pascafiks).
2) Salinan year sebelum dinyatakan (keputusan awalan).

Contoh: operator--

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

using namespace std::chrono;

int main()
{
   year y{2021};

    std::cout << y << " " << --y << "\n"; // constexpr year& operator++() noexcept
    std::cout << y << " " << y-- << "\n"; // constexpr year operator++(int) noexcept
    std::cout << y << "\n";

    return 0;
}
2021 2020
2020 2020
2019

Keterangan

Jika hasil yang dinyatakan kurang dari -32768, hasilnya diatur ke 32767.

operator+=

Tambahkan hari ke ini year.

constexpr year& operator+=(const years& y) noexcept;

Parameter

y
Jumlah tahun yang akan ditambahkan.

Nilai hasil

*this Jika hasil bertahap melebihi 32767, hasilnya meluap ke -32768.

operator-=

Kurangi hari dari ini year.

constexpr year& operator-=(const years& y) noexcept;

Parameter

y
Jumlah tahun yang akan dikurangi.

Nilai hasil

*this. Jika hasil yang dinyatakan kurang dari -32768, hasilnya diatur ke 32767.

operator int

Dapatkan nilainya year .

explicit constexpr operator int() const noexcept;

Nilai hasil

Nilai year

Contoh: operator int()

// compile using: /std:c++latest

 #include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year y{2020};
    int yearValue = static_cast<int>(y);
    std::cout << yearValue;

    return 0;
}
2020

Lihat juga

<chrono>
year_month
year_month_day
year_month_day_last
year_month_weekday
year_month_weekday_last
Referensi File Header