weekday
sınıfı
Gregoryen takvimde haftanın gününü temsil eder. Örneğin, Salı.
Sözdizimi
class weekday; // C++20
Açıklamalar
bir weekday
değeri [0, 255] içerebilir, ancak genellikle haftanın bir gününü temsil etmek için [0, 6] değerini tutar.
Sınıfıyla weekday
kullanabileceğiniz sabitler için aşağıdaki Weekday sabitlerine bakın.
Üyeler
Veri Akışı Adı | Açıklama |
---|---|
Oluşturucular | oluşturma weekday . |
c_encoding |
weekday Değeri alın. |
iso_encoding |
ISO 8601 weekday değerini alın. |
ok |
Değerin weekday geçerli olup olmadığını denetleyin. |
operator++ |
değerini artırma weekday . |
operator+= |
Belirtilen sayıda haftanın gününü bu weekday öğesine ekleyin. |
operator-- |
'yi azaltma weekday . |
operator-= |
Belirtilen hafta içi gün sayısını bu weekday içinden çıkarın. |
operator[] |
Bu weekday içinden bir weekday_indexed veya weekday_last oluşturun. |
Üye olmayanlar
Veri Akışı Adı | Açıklama |
---|---|
from_stream |
Belirtilen biçimi kullanarak verilen akıştan bir weekday ayrıştırın. |
operator+ |
Bu weekday öğesine belirtilen sayıda hafta içi günü ekleyin. |
operator- |
Belirtilen hafta içi gün sayısını bu weekday içinden çıkarın veya iki weekday nesne arasındaki farkı bulun. |
operator== |
İki weekday nesnenin eşit olup olmadığını belirleyin. |
operator<< |
Akışa a weekday çıkışı. |
Gereksinimler
Üst bilgi: <chrono>
C++20'den beri
Ad alanı: std::chrono
Derleyici Seçeneği: /std:c++latest
Oluşturucular
bir weekday
oluşturur.
1) weekday() = default; // C++20
2) explicit constexpr weekday(unsigned wd) noexcept; // C++20
3) constexpr weekday(const sys_days& dp) noexcept; // C++20
4) explicit constexpr weekday(const local_days& dp) noexcept; // C++20
Parametreler
dp
Haftanın dp
gününü kullanarak bir weekday
oluşturun.
wd
değeriyle wd
bir weekday
oluşturur.
Açıklamalar
1) Varsayılan oluşturucu haftanın günü değerini başlatmaz.
2) Belirtilen değerle bir weekday
oluşturur.
7 ise wd
, weekday
değeri 0 ile oluşturulur.
255'in üzerindeki değerlerle başlatmayın; aksi takdirde sonuçta weekday
belirtilmeyen bir değer olur.
3) Haftanın hangi gününün değerine dp
karşılık geldiğini std::chrono::sys_days
hesaplar ve o günü kullanarak bir weekday
oluşturur.
4) değerine dp
karşılık gelen std::chrono::local_days
haftanın gününü hesaplar ve o günü kullanarak bir weekday
oluşturur. kullanarak weekday(std::chrono::sys_days(dp.time_since_epoch()))
oluşturduğunuz weekday
gibi davranır.
Örnek: Oluşturma weekday
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
weekday wd{ Wednesday };
weekday wd2{ 3 };
std::cout << wd << '\n' << wd2;
return 0;
}
Wednesday
Wednesday
c_encoding
constexpr unsigned c_encoding() const noexcept;
Dönüş değeri
Haftanın günü değeri.
iso_encoding
Hafta içi değeri, ancak Pazar (0) değeri ISO 8601 başına 7 olarak yorumlanır.
constexpr unsigned iso_encoding() const noexcept;
Dönüş değeri
Haftanın günü değeri.
ok
Burada weekday
depolanan değerin geçerli aralıkta olup olmadığını denetleyin.
constexpr bool is_leap() const noexcept;
Dönüş değeri
true
hafta içi değeri [0, 6] aralığındaysa. Tersi durumda false
.
operator++
Haftanın günü değerine 1 ekleyin.
1) constexpr std::chrono::weekday& operator++() noexcept;
2) constexpr std::chrono::weekday operator++(int) noexcept;
Dönüş değeri
1) Artırıldıktan sonraki haftanın günü başvurusu *this
(sonek artışı).
2) Artırılamadan önce öğesinin weekday
bir kopyası (bir ön ek artışı).
Örnek: operator++
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main()
{
std::chrono::weekday wd{Thursday};
std::cout << wd << " " << ++wd << "\n"; // constexpr weekday& operator++() noexcept
std::cout << wd << " " << wd++ << "\n"; // constexpr weekday operator++(int) noexcept
std::cout << wd << "\n";
return 0;
}
Thu Fri
Fri Fri
Sat
Açıklamalar
Artımlı değer modulo 7'dir. Her zaman [0, 6] aralığında olacaktır.
operator--
Değerden 1 çıkarın weekday
.
1) constexpr std::chrono::weekday& operator--() noexcept;
2) constexpr std::chrono::weekday operator--(int) noexcept;
Dönüş değeri
1) Geri alındıktan sonraki başvuru *this
weekday
(sonek azaltma).
2) Azaltmadan önceki bir kopyası weekday
(bir ön ek azaltma).
Örnek: operator--
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main()
{
weekday y = weekday{Thursday};
cout << y << " " << --y << "\n"; // constexpr weekday& operator--() noexcept
cout << y << " " << y-- << "\n"; // constexpr weekday operator--(int) noexcept
cout << y << "\n";
return 0;
}
Thu Wed
Wed Wed
Tue
Açıklamalar
Azalan sonuç 0'dan küçükse 6 olarak ayarlanır.
operator+=
bir weekday
öğesine gün ekleme.
constexpr weekday& operator+=(const days& d) noexcept;
Parametreler
*d*
Eklenecek gün sayısı.
Dönüş değeri
değeridir *this + d
. Sonuç[0, 6] aralığında modulo 7 olacaktır.
operator-=
günlerini içinden weekday
çıkarın.
constexpr weekday& operator-=(const days& d) noexcept;
Parametreler
*d*
Çıkarılana gün sayısı.
Dönüş değeri
değeridir *this - d
. Sonuç[0, 6] aralığında modulo 7 olacaktır.
operator[]
Bu weekday
içinden bir weekday_indexed veya weekday_last oluşturun.
1) std::chrono::weekday_indexed(*this, index) // C++20
2) std::chrono::weekday_last(*this) // C++20
Dönüş değeri
1) std::chrono::weekday_indexed(*this, index)
2) std::chrono::weekday_last(*this)
Örnek: operator[]
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main()
{
constexpr auto firstMondayInJanuary =
year_month_day{ Monday[2] / January / 2021y };
std::cout << firstMondayInJanuary << "\n";
constexpr auto lastMondayInJanuary =
year_month_day{ Tuesday[last] / January / 2021y };
std::cout << lastMondayInJanuary << "\n";
}
2021-01-11
2021-01-26
Hafta içi sabitleri
(C++20) Üst <chrono>
bilgi, kodunuzun daha rahat olması, tür güvenliği ve sürdürülebilirliği için birlikte weekday
kullanabileceğiniz aşağıdaki sabitleri tanımlar. Bu sabitler kapsam içinde olduğunda std::chrono
kapsam içindedir.
// Calendrical constants
inline constexpr std::chrono::weekday Sunday{0};
inline constexpr std::chrono::weekday Monday{1};
inline constexpr std::chrono::weekday Tuesday{2};
inline constexpr std::chrono::weekday Wednesday{3};
inline constexpr std::chrono::weekday Thursday{4};
inline constexpr std::chrono::weekday Friday{5};
inline constexpr std::chrono::weekday Saturday{6};
Ayrıca bkz.
weekday_last
sınıfı
weekday_indexed
sınıfı
<chrono>
Ü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