名前空間
変種
操作

std::chrono::operator+, std::chrono::operator- (std::chrono::weekday)

From cppreference.com
< cpp‎ | chrono‎ | weekday
 
 
 
 
ヘッダー <chrono> で定義
constexpr std::chrono::weekday operator+( const std::chrono::weekday& wd,
                                          const std::chrono::days& d ) noexcept;
(1) (C++20以降)
constexpr std::chrono::weekday operator+( const std::chrono::days& d,
                                          const std::chrono::weekday& wd ) noexcept;
(2) (C++20以降)
constexpr std::chrono::weekday operator-( const std::chrono::weekday& wd,
                                          const std::chrono::days& d ) noexcept;
(3) (C++20以降)
constexpr std::chrono::days operator-( const std::chrono::weekday& wd1,
                                       const std::chrono::weekday& wd2 ) noexcept;
(4) (C++20以降)
1,2) d.count() 日を加算します。結果の曜日値は、static_cast<long long>(wd.c_encoding()) + d.count() を計算し、それを 7 で割った余りを 0 から 6 の範囲に正規化した値として計算されます。
3) wd から d.count() 日を減算します。return wd + -d; と同等です。
4) wd1.ok()wd2.ok() が両方とも true の場合、d.count() が 0 から 6 の範囲にあり、wd2 + d == wd1 となる std::chrono::daysd を返します。それ以外の場合、返される値は未規定です。

目次

[編集] 返り値

1-3) 上記のように計算された曜日値を持つ std::chrono::weekday
4) wd1wd2 の間の距離を表す std::chrono::days

[編集] 注記

計算がオーバーフローしない限り、wd.ok()false の場合でも、(1-3) は常に有効な weekday を返します。

[編集]

#include <chrono>
#include <iostream>
 
int main()
{
    std::cout << std::boolalpha;
 
    std::chrono::weekday wd{4};
    wd = wd + std::chrono::days(2);
    std::cout << (wd == std::chrono::weekday(6)) << ' '
              << (wd == std::chrono::Saturday) << ' ';
 
    wd = wd - std::chrono::days(3);
    std::cout << (wd == std::chrono::weekday(3)) << ' '
              << (wd == std::chrono::Wednesday) << ' ';
 
    wd = std::chrono::Tuesday;
    wd = wd + std::chrono::days{8}; // (((2 + 8) == 10) % 7) == 3;
    std::cout << (wd == std::chrono::Wednesday) << ' ';
 
    wd = wd + (std::chrono::Sunday - std::chrono::Thursday); // (3 + 3) == 6
    std::cout << (wd == std::chrono::Saturday) << '\n';
}

出力

true true true true true true

[編集] 関連項目

曜日をインクリメントまたはデクリメントします
(public member function) [編集]
日数を加算または減算します
(public member function) [編集]
English 日本語 中文(简体) 中文(繁體)