C++:
Obtendo a data atual
Como fazer:
C++ oferece várias maneiras de obter a data atual, incluindo a biblioteca padrão do C++ e bibliotecas de terceiros como a Boost. Os exemplos a seguir demonstram como realizar essa tarefa.
Usando <chrono>
(C++20 e posteriores)
C++20 introduziu mais funcionalidades na biblioteca <chrono>
, tornando-a direta para obter a data atual:
#include <iostream>
#include <chrono>
#include <format> // Para std::format (C++20)
int main() {
auto current_time_point = std::chrono::system_clock::now(); // Captura o tempo atual
auto current_time_t = std::chrono::system_clock::to_time_t(current_time_point); // Converte para time_t
// Formata o tempo para um formato legível
std::cout << "Data Atual: " << std::format("{:%Y-%m-%d}", std::chrono::system_clock::to_time_t(current_time_point)) << std::endl;
return 0;
}
Exemplo de Saída:
Data Atual: 2023-03-15
Usando <ctime>
Para programadores que trabalham com versões anteriores do C++ ou aqueles que preferem a biblioteca tradicional C:
#include <iostream>
#include <ctime>
int main() {
std::time_t t = std::time(0); // Obtém o tempo atual
std::tm* agora = std::localtime(&t);
std::cout << "Data Atual: "
<< (agora->tm_year + 1900) << '-'
<< (agora->tm_mon + 1) << '-'
<< agora->tm_mday
<< std::endl;
return 0;
}
Exemplo de Saída:
Data Atual: 2023-03-15
Usando Boost Date_Time
Para projetos que utilizam as bibliotecas Boost, a biblioteca Boost Date_Time oferece um método alternativo para obter a data atual:
#include <iostream>
#include <boost/date_time.hpp>
int main() {
// Obtém o dia atual usando o calendário gregoriano da Boost
boost::gregorian::date hoje = boost::gregorian::day_clock::local_day();
std::cout << "Data Atual: " << hoje << std::endl;
return 0;
}
Exemplo de Saída:
Data Atual: 2023-Mar-15
Esses exemplos fornecem uma base fundamental para trabalhar com datas em C++, crucial para uma ampla gama de aplicações.