Aracılığıyla paylaş


year_month_weekday sınıfı

Belirli bir yılı, ayı ve ayın n. hafta gününü temsil eder.

Sözdizimi

class year_month_weekday; // C++20

Açıklamalar

year_month_weekday yıl ve ay odaklı aritmetiği destekler, ancak gün odaklı aritmetiği desteklemez. Gün odaklı aritmetik için dönüştürmeyi sys_days kullanarak gün odaklı aritmetiği destekleyen öğesine sys_daysdönüştürün.

year_month_weekday önemsiz olarak kopyalanabilir ve standart düzen sınıf türüdür.

Üyeler

Adı Açıklama
Constructor Belirtilen ay ve hafta içi ile bir year_month_weekday oluşturun.
index Haftanın gününün dizinini alır.
month Ay değerini alın.
ok geçerli olup olmadığını year_month_weekday denetleyin.
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_weekday kadar olan system_clock gün sayısını olarak local_daysalın.
operator sys_days Çağdan buna year_month_weekday kadar olan system_clock gün sayısını olarak sys_daysalın.
weekday Haftanın gününü al.
weekday_indexed [weekday_indexed] öğesinin bu year_month_weekdayiçinde depolandığını alın.
year Yılı al.

Üye olmayanlar

Adı Açıklama
operator+ Aylar veya yıllar ekleyin.
operator- Ayları veya yılları çıkarın.
operator== İki year_month_weekday değerin eşit olup olmadığını belirleyin.
operator<< Verilen akışa a year_month_weekday çıkışı.

Gereksinimler

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

Ad alanı:std::chrono

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

Oluşturucu

bir year_month_weekdayoluşturur.

// 1)
year_month_weekday() = default

// 2)
constexpr year_month_weekday(const year& y, const month& m, const weekday_indexed& wdi) noexcept;

// 3) 
constexpr explicit year_month_weekday(const local_days& dp) noexcept;

// 4)
constexpr year_month_weekday(const sys_days& dp) noexcept;

Parametreler

m
month değeri.

dp
A sys_days veya local_days

wdi
weekday değeri.

y
year değeri.

Açıklamalar: Oluşturucu

1) Varsayılan oluşturucu alanların hiçbirini başlatmaz.

2) Belirtilen year, monthve weekday_indexedöğesine karşılık gelen bir year_month_weekday oluşturur.

3) tarafından sys_days{dp.time_since_epoch()}temsil edilen tarihe karşılık gelen bir year_month_weekday oluşturur.

4) tarafından dptemsil edilen tarihe karşılık gelen bir year_month_weekday oluşturur. için olan herhangi bir year_month_weekday (ymdl) için ok()trueile operator==year_month_weekday{sys_days{ymdl}} karşılaştırma olacaktır true.

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

Örnek: Oluşturma year_month_weekday

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

using namespace std::chrono;

int main()
{
    year_month_weekday ymw{1997y / January / Wednesday[1]};
    std::cout << ymw << '\n';
    
    return 0;
}
1997/Jan/Wed[1]

index

Bu year_month_weekdayiçindeki haftanın gününün hafta dizinini alın.

constexpr unsigned index() const noexcept;

Dönüş değeri

Haftanın gününün dizini. Örneğin, haftanın günü haftanın ilk Çarşamba günüyse, dizin 1 olur.

month

Ay değerini alın.

constexpr month month() const noexcept;

Dönüş değeri

month değeri.

ok

Burada year_month_weekday depolanan değerin geçerli olup olmadığını denetleyin. Bu işlevin yeardöndürebilmesi trueiçin , ve weekday_index içinde year_month_weekday depolananların tümü olmalıdırok. month Aksi takdirde döndürür false.

constexpr bool ok() const noexcept;

Dönüş değeri

trueyear_month_weekday değeri geçerliyse. Tersi durumda false.
hem geçerli hem de month değer geçerliyseweekday_indexed, A year_month_weekday geçerlidir.

operator+=

Buna year_month_weekdayay veya yıl ekleyin.

1) constexpr year_month_weekday& operator+=(const months& m) noexcept;
2) constexpr year_month_weekday& operator+=(const years& y) noexcept;

Parametreler

m
Eklenecek ay sayısı.

y
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_weekday ymw{1997y / January / Wednesday[1]};
    std::cout << ymw << '\n';

    ymw += months{1};
    ymw += years{1};

    std::cout << ymw << '\n';
    
    return 0;
}
1997/Jan/Wed[1]
1998/Feb/Wed[1]

operator-=

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

1) constexpr year_month_weekday& operator-=(const months& m) noexcept;
2) constexpr year_month_weekday& operator-=(const years& y) noexcept;

Parametreler

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

y
Çı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_weekday ymw{1997y / January / Wednesday[1]};
    std::cout << ymw << '\n';

    ymw -= months{1};
    ymw -= years{1};

    std::cout << ymw << '\n';
    
    return 0;
}
1997/Jan/Wed[1]
1995/Dec/Wed[1]

operator local_days

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

constexpr explicit operator local_days() const noexcept;

Dönüş değeri

ise ok(), gün sayısını olarak local_days{sys_days{*this}.time_since_epoch()}döndürür. Aksi takdirde döndürülen değer belirtilmez.

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(), ilk year()/month()weekday() tarihinden günler sonra olan tarihi temsil eden (index() - 1) * 7 bir sys_days döndürür. ise index()0, döndürülen sys_days değeri ilk weekday()year()/month()tarihinden 7 gün önceki tarihi temsil eder.

weekday

içinde depolananını weekdayweekday_indexed bu year_month_weekdayiçinde alın.

constexpr weekday weekday() const noexcept;

Dönüş değeri

weekday değeri.

weekday_indexed

içinde depolanmış year_month_weekdayolarak weekday_indexed alın.

constexpr weekday_indexed weekday_indexed() const noexcept;

Dönüş değeri

weekday_indexed değeri.

year

Yıl değerini alın.

constexpr year year() const noexcept;

Dönüş değeri

year değeri.

Ayrıca bkz.

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