Dela via


day klass

Representerar en dag i månaden. Till exempel den 25:e dagen i månaden.

Syntax

class day; // C++20

Anmärkningar

En day innehåller normalt värden i intervallet [1, 31]. Det kan innehålla icke-negativa värden utanför det här intervallet, men beteendet är ospecificerat om det inte ligger inom intervallet [0, 255].

Medlemmar

Namn Beskrivning
Konstruktörer Konstruera en day.
ok Kontrollera att dagsvärdet är inom det giltiga intervallet [1,31].
operator++ Öka den här day.
operator+= Lägg till det angivna antalet dagar i detta day.
operator-- dayMinska .
operator-= Subtrahera det angivna antalet dagar från detta day
operator unsigned Hämta dagsvärdet som ett osignerat heltal.

Icke-medlemmar

Namn Beskrivning
from_stream Parsa en day från den angivna strömmen med det angivna formatet.
operator+ Lägg till angivet antal dagar i det här dayoch returnera ett nytt day objekt.
operator- Subtrahera det angivna antalet dagar från detta dayoch returnera ett nytt day objekt.
operator== Avgör om två day instanser är lika med.
operator<=> Jämför detta day med en annan day. Operatorerna >, >=, <=, <, != syntetiseras av kompilatorn.
operator<< Mata ut en day till den angivna strömmen.
operator""d Skapa en day literal för en dag i månaden.

Kravspecifikation

Rubrik:<chrono> (sedan C++20)

Namespace:std::chrono

kompilatoralternativ:/std:c++latest

Konstruktörer

Konstruerar en day.

1) day() = default;
2) explicit constexpr day(unsigned d) noexcept;

Parameterar

d
Skapa en day med värdet d.

Anmärkningar

1) Standardkonstruktorn initierar inte dagsvärdet.
2) Skapa en day med dagsvärdet initierat till d.

Exempel: Skapa en day

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    day d{1}; // day 1
    day d2 = 2d; // day 2

    std::cout << d << ", " << d2;

    return 0;
}
01, 02

ok

Kontrollera om värdet som lagras i den här day finns i det giltiga intervallet.

constexpr bool ok() const noexcept;

Returvärde

true om dagsvärdet ligger i intervallet [1,31]. Annars, false.

operator++

Lägg till 1 i dagsvärdet.

1) constexpr std::chrono::day& operator++() noexcept;
2) constexpr std::chrono::day operator++(int) noexcept;

Returvärde

1) En referens till *thisdaynär den har ökats (ett postfixsteg).
2) En kopia av day, innan den har ökats (ett prefixsteg).

Exempel: operator++

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    day d{1};

    std::cout << d << " " << ++d << "\n"; // constexpr day& operator++() noexcept
    std::cout << d << " " << d++ << "\n"; // constexpr day operator++(int) noexcept
    std::cout << d;

    return 0;
}
01 02
02 02
03

Anmärkningar

Om det inkrementerade resultatet ligger utom intervallet [0, 255] är det lagrade värdet ospecificerat.

operator--

Subtrahera 1 från dagsvärdet.

1) constexpr std::chrono::day& operator--() noexcept;
2) constexpr std::chrono::day operator--(int) noexcept;

Returvärde

1) En referens till dagen *this att den har minskats (en postfixdekantering).
2) En kopia av *day, innan den har minskats (en prefixdeprerement).

Exempel: operator--

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

int main()
{
    day d{5};
    std::cout << d << " " << --d << "\n"; // constexpr day& operator--() noexcept
    std::cout << d << " " << d-- << "\n"; // constexpr day operator--(int) noexcept
    std::cout << d << "\n";

    return 0;
}
05 04
04 04
03

Anmärkningar

Om det decrementerade resultatet ligger utom intervallet [0, 255] är det lagrade värdet ospecificerat.

operator+=

Lägg till dagar i detta day.

constexpr day& operator+=(const days& d) noexcept;

Parameterar

d
Antalet dagar som ska läggas till.

Returvärde

*this

Om resultatet ligger utanför intervallet [0, 255] är det lagrade värdet ospecificerat.

operator-=

Subtrahera dagar från detta day.

constexpr day& operator-=(const days& d) noexcept;

Parameterar

d
Antalet dagar som ska subtraheras.

Returvärde

*this. Om resultatet ligger utanför intervallet [0, 255] är det lagrade värdet ospecificerat.

operator unsigned

Hämta värdet för day.

explicit constexpr operator unsigned() const noexcept;

Returvärde

Värdet för day

Exempel: operator unsigned()

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

int main()
{
    chrono::day d{14d};
    unsigned dayValue = static_cast<unsigned>(d);
    cout << dayValue << "\n";
    
    return 0;
}
14

Se även

<chrono>
Klassen month_day
Klassen month_day_last
year_month_day
year_month_day_last
referens för huvudfiler