Calculando uma data no futuro ou passado

C++:
Calculando uma data no futuro ou passado

Como Fazer:

#include <iostream>
#include <ctime>

int main() {
    // Pega o tempo atual
    std::time_t atual = std::time(nullptr);

    // Converte para struct tm para manipulacao mais facil
    struct tm data = *std::localtime(&atual);

    // Altera a data: 30 dias no futuro
    data.tm_mday += 30;
    // Normaliza a struct tm e converte de volta para time_t
    std::time_t futuro = std::mktime(&data);

    // Mostra a nova data
    std::cout << "Data Futura: " << std::asctime(&data) << std::endl;

    return 0;
}

Exemplo de saída:

Data Futura: Wed Feb 26 14:55:21 2023

Mergulho Profundo

Calcular datas não é algo novo – tem sido fundamental desde que começamos a medir o tempo. Em C++, nós já vimos a <ctime> e a <chrono> para lidar com o tempo. A <ctime> te dá uma maneira mais tradicional e baseada em C de tratar tempo, enquanto <chrono>, introduzida no C++11, te oferece uma abordagem moderna e tipicamente mais segura.

Antes de <chrono>, manipular datas exigia atenção cuidadosa, principalmente devido a possíveis erros ao normalizar datas (ajustando os dias e meses para valores válidos após manipulações).

Além disso, várias bibliotecas de terceiros, como a Boost.Date_Time, oferecem funcionalidades avançadas se você precisar de algo mais complexo.

Detalhes de implementação normalmente envolvem lidar com o formato de data e hora (struct tm), normalização de tempo (usando mktime() para ajustar struct tm) ou calcular diferenças de tempo.

Veja Também