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_days
dö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_days alın. |
operator sys_days |
Çağdan buna year_month_weekday kadar olan system_clock gün sayısını olarak sys_days alın. |
weekday |
Haftanın gününü al. |
weekday_indexed |
[weekday_indexed ] öğesinin bu year_month_weekday iç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_weekday
oluş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
, month
ve 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 dp
temsil edilen tarihe karşılık gelen bir year_month_weekday
oluşturur. için olan herhangi bir year_month_weekday
(ymdl) için ok()
true
ile 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_weekday
iç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 year
döndürebilmesi true
iç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
true
year_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_weekday
ay 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_days
alı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ı weekday
weekday_indexed
bu year_month_weekday
içinde alın.
constexpr weekday weekday() const noexcept;
Dönüş değeri
weekday
değeri.
weekday_indexed
içinde depolanmış year_month_weekday
olarak 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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin