C++:
Nykyisen päivämäärän hankkiminen
Miten:
C++ tarjoaa useita tapoja saada nykyinen päivämäärä, mukaan lukien C++ standardikirjasto ja kolmannen osapuolen kirjastot kuten Boost. Seuraavat esimerkit osoittavat, miten tämä tehtävä suoritetaan.
Käyttäen <chrono>
-kirjastoa (C++20 ja myöhemmät)
C++20 toi <chrono>
-kirjastoon lisää toiminnallisuuksia, mikä tekee nykyisen päivämäärän saamisen suoraviivaiseksi:
#include <iostream>
#include <chrono>
#include <format> // For std::format (C++20)
int main() {
auto current_time_point = std::chrono::system_clock::now(); // Otetaan kiinni nykyinen aika
auto current_time_t = std::chrono::system_clock::to_time_t(current_time_point); // Muunnetaan time_t:ksi
// Muotoillaan aika luettavaan muotoon
std::cout << "Nykyinen päivämäärä: " << std::format("{:%Y-%m-%d}", std::chrono::system_clock::to_time_t(current_time_point)) << std::endl;
return 0;
}
Esimerkkituloste:
Nykyinen päivämäärä: 2023-03-15
Käyttäen <ctime>
-kirjastoa
Ohjelmoijille, jotka työskentelevät vanhempien C++ versioiden kanssa tai jotka suosivat perinteistä C-kirjastoa:
#include <iostream>
#include <ctime>
int main() {
std::time_t t = std::time(0); // Haetaan nykyinen aika
std::tm* now = std::localtime(&t);
std::cout << "Nykyinen päivämäärä: "
<< (now->tm_year + 1900) << '-'
<< (now->tm_mon + 1) << '-'
<< now->tm_mday
<< std::endl;
return 0;
}
Esimerkkituloste:
Nykyinen päivämäärä: 2023-03-15
Käyttäen Boost Date_Time -kirjastoa
Projekteille, jotka hyödyntävät Boost-kirjastoja, Boost Date_Time -kirjasto tarjoaa vaihtoehtoisen menetelmän nykyisen päivämäärän saamiseen:
#include <iostream>
#include <boost/date_time.hpp>
int main() {
// Haetaan nykyinen päivä käyttäen Boostin gregoriaanista kalenteria
boost::gregorian::date today = boost::gregorian::day_clock::local_day();
std::cout << "Nykyinen päivämäärä: " << today << std::endl;
return 0;
}
Esimerkkituloste:
Nykyinen päivämäärä: 2023-Mar-15
Nämä esimerkit tarjoavat perustan työskentelyyn päivämäärien kanssa C++:ssa, mikä on olennaista laajalle valikoimalle sovelluksia.