Beräkna ett datum i framtiden eller förflutet

C++:
Beräkna ett datum i framtiden eller förflutet

How to:

I C++ kan du använda <chrono> biblioteket som ett kraftfullt verktyg för datumhantering. Här nedan följer ett exempel på att addera en vecka till dagens datum:

#include <iostream>
#include <chrono>
#include <iomanip>

int main() {
    using namespace std::chrono;

    // Dagens datum
    system_clock::time_point today = system_clock::now();

    // Lägg till en vecka (7 dagar)
    system_clock::time_point next_week = today + days(7);

    // Konvertera till läsbar form
    time_t next_week_time = system_clock::to_time_t(next_week);

    // Skriv ut
    std::cout << "Idag: " << std::put_time(std::localtime(&next_week_time), "%Y-%m-%d") << std::endl;
    std::cout << "Nästa vecka: " << std::put_time(std::localtime(&next_week_time), "%Y-%m-%d") << std::endl;

    return 0;
}

Förväntad utdata visar dagens datum och sedan datumet för en vecka framåt.

Deep Dive:

Före <chrono> blev standard i C++11, använde programmerare ofta time.h eller externa bibliotek som Boost.Date_Time. <chrono> introducerades för mer precision och bättre syntax.

Förutom att bara addera dagar, kan <chrono> hantera tidsmätning i timmar, minuter, sekunder eller till och med nanosekunder, samt att subtrahera tiden. Implementationen använder tidsperioder (durations) och tidsstämplar (time_points), vilket möjliggör robust datum- och tidshantering.

Alternativa metoder inkluderar datumhanteringspaket i tredjepartsbiblioteket Boost eller till och med skriva en egen datumhanterare, men dessa metoder är oftast onödiga med de nuvarande standardbiblioteken.

See Also: