Aracılığıyla paylaş


year_month_day sınıfı

Ay, yıl ve günü temsil eder.

Sözdizimi

class year_month_day; // C++20

Üyeler

Veri Akışı Adı Açıklama
Oluşturucular Oluşturma year_month_day
day Günü döndürür.
month Ayı döndürür.
ok ve month değerlerinin year geçerli aralıkta olduğunu doğrulayın.
operator+= Belirtilen sayıda ay veya yıl ekleyin.
operator-= Belirtilen ay veya yıl sayısını çıkarın.
operator local_days Çağdan buna year_month_day kadar olan system_clock gün sayısını olarak local_daysalın.
operator sys_days Çağdan buna year_month_day kadar olan system_clock gün sayısını olarak sys_daysalın.
year Yılı döndürür.

Üye olmayanlar

Veri Akışı Adı Açıklama
from_stream Belirtilen biçimi kullanarak bir year_month_day akıştan ayrıştırma
operator+ Aylar veya yıllar ekleyin.
operator- Ayları veya yılları çıkarın.
operator== İki year_month_day değerin eşit olup olmadığını belirleyin.
operator<=> İki year_month_day değeri karşılaştırın. İşleçler >, >=, <=, <, != derleyici tarafından sentezlenir.
operator<< Akışa a year_month_day çıkışı.

Gereksinimler

Üst bilgi: <chrono> (C++20'den beri)

Ad alanı: std::chrono

Derleyici Seçeneği: /std:c++latest

Oluşturucular

oluşturma year_month_day.

1) year_month_day() = default;
2) constexpr year_month_day(const year& y, const month& m, day& d) noexcept;
3) constexpr year_month_day(const year_month_day_last& ymdl) noexcept;
4) constexpr year_month_day(const sys_days& dp) noexcept;
5) constexpr explicit year_month_day(const local_days& dp) noexcept;

Parametreler

d Bir day değer.

dp A sys_days veya local_days değeri.

m Bir month değer.

y
Bir year değer.

ymdl Bir year_month_day_last değer.

Açıklamalar

1) Varsayılan oluşturucu ayı veya günü başlatmaz.
2) Belirtilen yıl, ay ve gün ile bir year_month_dayoluşturur.
3) Belirtilen yıl, ay ve günü içeren bir year_month_dayoluşturur ymdl
4) ile aynı tarihe dpsahip bir year_month_dayoluşturur.
5) ile aynı tarihe dp sahip ancak tarafından year_month_day(sys_days(dp.time_since_epoch()))oluşturulduğu gibi bir year_month_dayoluşturur.

Tarihleri belirtmek için kullanılan C++20 söz dizimi hakkında bilgi için bkz. operator/

Örnek: Oluşturma year_month_day

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

using namespace std::chrono;

int main()
{
    year_month_day ymd{ April / 4 / 1975 };
    std::cout << ymd;
    return 0;
}
1975-04-04

day

Günü al.

constexpr day day() const noexcept;

Dönüş değeri

day değeri.

month

Ayı al.

constexpr month month() const noexcept;

Dönüş değeri

month değeri.

operator local_days

Dönem (1/1/1970) ile buna kadar olan system_clock gün sayısını şu year_month_day şekilde alın: local_days

constexpr explicit operator local_days() const noexcept;

Dönüş değeri

ise ok(), olarak gün sayısını döndürür local_days{sys_days{*this}.time_since_epoch()}

operator sys_days

Dönem (1/1/1970) ile buna year_month_day kadar olan gün system_clock sayısını olarak sys_daysalır.

constexpr operator sys_days() const noexcept;

Dönüş değeri

iseok(), dönem (1/1/1970) ile bu year_month_dayiçinde tutulan tarihe kadar olan gün sys_days sayısını tutarsys_days. Bu tarihteki tarih year_month_day dönem öncesindeyse sys_days değer negatif olur.

Bunun year_month_day içindeki yıl ve ay ise ok()döndürür sys_days{year/month/1d} + (day-1d). Aksi takdirde, döndürülen değer belirtilmez.

[days{-12687428}, ] aralığındaki Asys_days, days{11248737}bir year_month_day ve geri dönüştürülebilir ve aynı değere sahip olabilir.

year

Yılı al.

constexpr year year() const noexcept;

Dönüş değeri

year.

ok

Burada year_month_day depolanan yıl ve ay değerinin geçerli aralıkta olup olmadığını denetleyin. Günün [1d, (y/m/last).day()] aralığında olmasını, artık yılların ve her ayın farklı gün sayısının hesaplanmasını sağlar.

constexpr bool ok() const noexcept;

Dönüş değeri

trueyear_month_day yıl, ay ve gün değerleri geçerli aralıktaysa. Tersi durumda false.

operator+=

Buna year_month_dayay veya yıl ekleyin.

1) constexpr year_month_day& operator+=(const months& dm) noexcept;
2) constexpr year_month_day& operator+=(const years& dy) noexcept;

Parametreler

dm
Eklenecek ay sayısı.

dy
Eklenecek yıl sayısı.

Dönüş değeri

*this, toplamanın sonucunu yansıtır.

Örnek: operator+=

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

using namespace std::chrono;

int main()
{
    year_month_day ymd{June / 1d / 2021y};

    std::cout << ymd << '\n';

    ymd += months{2};
    ymd += years{1};

    std::cout << ymd;
    
    return 0;
}
2021-06-01
2022-08-01

operator-=

Ayları veya yılları buradan year_month_dayçıkarın.

1) constexpr year_month_day& operator-=(const months& dm) noexcept;
2) constexpr year_month_day& operator-=(const years& dy) noexcept;

Parametreler

dm
Çıkarılana ay sayısı.

dy
Çıkaracak yıl sayısı.

Dönüş değeri

*this, çıkarma işleminin sonucunu yansıtır.

Örnek: operator-=

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

using namespace std::chrono;

int main()
{
    year_month_day ymd{June / 1d / 2021y};

    std::cout << ymd << '\n';

    ymd -= months{2};
    ymd -= years{1};

    std::cout << ymd;
    
    return 0;
}
2021-06-01
2020-04-01

Ayrıca bkz.

<chrono>
year
year_month
year_month_day_last
year_month_weekday
year_month_weekday_last
operator/
Üst Bilgi Dosyaları Başvurusu