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_days alın. |
operator sys_days |
Çağdan buna year_month_day kadar olan system_clock gün sayısını olarak sys_days alı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_day
oluşturur.
3) Belirtilen yıl, ay ve günü içeren bir year_month_day
oluşturur ymdl
4) ile aynı tarihe dp
sahip bir year_month_day
oluş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_day
oluş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_days
alır.
constexpr operator sys_days() const noexcept;
Dönüş değeri
iseok()
, dönem (1/1/1970) ile bu year_month_day
iç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
true
year_month_day
yıl, ay ve gün değerleri geçerli aralıktaysa. Tersi durumda false
.
operator+=
Buna year_month_day
ay 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
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