Få det aktuella datumet

C++:
Få det aktuella datumet

Hur man gör:

C++ erbjuder flera sätt att få det aktuella datumet, inklusive C++-standardbiblioteket och tredjepartsbibliotek som Boost. Följande exempel visar hur man utför denna uppgift.

Använda <chrono> (C++20 och senare)

C++20 introducerade fler funktioner i <chrono>-biblioteket, vilket gör det enkelt att få det aktuella datumet:

#include <iostream>
#include <chrono>
#include <format> // För std::format (C++20)

int main() {
    auto nuvarande_tidpunkt = std::chrono::system_clock::now(); // Fånga den aktuella tiden
    auto nuvarande_time_t = std::chrono::system_clock::to_time_t(nuvarande_tidpunkt); // Konvertera till time_t

    // Formatera tiden till ett läsbart format
    std::cout << "Aktuellt datum: " << std::format("{:%Y-%m-%d}", std::chrono::system_clock::to_time_t(nuvarande_tidpunkt)) << std::endl;

    return 0;
}

Exempel på utdata:

Aktuellt datum: 2023-03-15

Använda <ctime>

För programmerare som arbetar med äldre versioner av C++ eller de som föredrar det traditionella C-biblioteket:

#include <iostream>
#include <ctime>

int main() {
    std::time_t t = std::time(0); // Få aktuell tid
    std::tm* nu = std::localtime(&t);
    std::cout << "Aktuellt datum: " 
              << (nu->tm_year + 1900) << '-' 
              << (nu->tm_mon + 1) << '-'
              <<  nu->tm_mday
              << std::endl;

    return 0;
}

Exempel på utdata:

Aktuellt datum: 2023-03-15

Använda Boost Date_Time

För projekt som använder Boost-biblioteken erbjuder Boost Date_Time-biblioteket en alternativ metod för att få det aktuella datumet:

#include <iostream>
#include <boost/date_time.hpp>

int main() {
    // Få den aktuella dagen med Boosts gregorianska kalender
    boost::gregorian::date idag = boost::gregorian::day_clock::local_day();
    std::cout << "Aktuellt datum: " << idag << std::endl;

    return 0;
}

Exempel på utdata:

Aktuellt datum: 2023-Mar-15

Dessa exempel tillhandahåller en grundläggande grund för att arbeta med datum i C++, avgörande för ett brett spektrum av applikationer.