Aracılığıyla paylaş


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 weekdayiçinden çıkarın.
operator[] Bu weekdayiç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 weekdayiç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 weekdayoluş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 dpgününü kullanarak bir weekday oluşturun.

wd
değeriyle wdbir 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 dpkarşılık geldiğini std::chrono::sys_days hesaplar ve o günü kullanarak bir weekday oluşturur.
4) değerine dpkarşı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 weekdaybir 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 weekdayiç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