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.