Pobieranie aktualnej daty

C++:
Pobieranie aktualnej daty

Jak to zrobić:

C++ oferuje kilka sposobów na uzyskanie bieżącej daty, w tym standardową bibliotekę C++ i biblioteki stron trzecich, takie jak Boost. Poniższe przykłady pokazują, jak to osiągnąć.

Korzystając z <chrono> (C++20 i nowsze)

C++20 wprowadził więcej funkcjonalności w bibliotece <chrono>, ułatwiając uzyskanie bieżącej daty:

#include <iostream>
#include <chrono>
#include <format> // Dla std::format (C++20)

int main() {
    auto current_time_point = std::chrono::system_clock::now(); // Złap bieżący czas
    auto current_time_t = std::chrono::system_clock::to_time_t(current_time_point); // Konwersja na time_t

    // Formatuj czas do czytelnego formatu
    std::cout << "Aktualna Data: " << std::format("{:%Y-%m-%d}", std::chrono::system_clock::to_time_t(current_time_point)) << std::endl;

    return 0;
}

Przykładowy Wynik:

Aktualna Data: 2023-03-15

Korzystając z <ctime>

Dla programistów pracujących ze starszymi wersjami C++ lub tych, którzy preferują tradycyjną bibliotekę C:

#include <iostream>
#include <ctime>

int main() {
    std::time_t t = std::time(0); // Pobierz bieżący czas
    std::tm* now = std::localtime(&t);
    std::cout << "Aktualna Data: " 
              << (now->tm_year + 1900) << '-' 
              << (now->tm_mon + 1) << '-'
              <<  now->tm_mday
              << std::endl;

    return 0;
}

Przykładowy Wynik:

Aktualna Data: 2023-03-15

Korzystając z Boost Date_Time

Dla projektów, które wykorzystują biblioteki Boost, biblioteka Boost Date_Time oferuje alternatywną metodę na uzyskanie bieżącej daty:

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

int main() {
    // Pobierz bieżący dzień korzystając z kalendarza gregoriańskiego Boost
    boost::gregorian::date today = boost::gregorian::day_clock::local_day();
    std::cout << "Aktualna Data: " << today << std::endl;

    return 0;
}

Przykładowy Wynik:

Aktualna Data: 2023-Mar-15

Te przykłady zapewniają podstawową wiedzę na temat pracy z datami w C++, która jest kluczowa dla szerokiego zakresu zastosowań.