Calculando uma data no futuro ou passado

Rust:
Calculando uma data no futuro ou passado

Como Fazer:

use chrono::{Duration, Local};

fn main() {
    let hoje = Local::now();
    println!("Hoje: {}", hoje.format("%d/%m/%Y %H:%M"));

    let daqui_a_cinco_dias = hoje + Duration::days(5);
    println!("Daqui a 5 dias: {}", daqui_a_cinco_dias.format("%d/%m/%Y %H:%M"));

    let ha_dez_dias = hoje - Duration::days(10);
    println!("Há 10 dias: {}", ha_dez_dias.format("%d/%m/%Y %H:%M"));
}

saída esperada:

Hoje: 02/04/2023 15:30
Daqui a 5 dias: 07/04/2023 15:30
Há 10 dias: 23/03/2023 15:30

Aprofundamento

A capacidade de calcular datas é crucial desde os primórdios da programação. Antes das bibliotecas especializadas, como a chrono em Rust, programadores tinham que lidar manualmente com as complexidades dos calendários e fusos horários. Alternativas modernas incluem o uso de APIs de tempo padrão que já vêm com as linguagens (como std::time::Duration em Rust), mas estas podem não ser suficientemente robustas para todos os casos de uso. Na implementação de cálculos de datas, também é essencial considerar questões como anos bissextos, a variação no número de dias por mês e normalizações de fuso horário.

Veja Também