Java:
Calculando uma data no futuro ou passado
Como Fazer:
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class FuturoEPassado {
public static void main(String[] args) {
LocalDate hoje = LocalDate.now();
// Adicionando 10 dias à data atual
LocalDate futuro = hoje.plusDays(10);
System.out.println("Data futura: " + futuro);
// Subtraindo 30 anos da data atual
LocalDate passado = hoje.minus(30, ChronoUnit.YEARS);
System.out.println("Data passada: " + passado);
}
}Saída de exemplo:
Data futura: 2023-04-20
Data passada: 1993-04-10Mergulho Profundo:
Historicamente, o cálculo de datas usava classes como java.util.Date e java.util.Calendar, que tinham problemas com design e usabilidade. Desde o Java 8, o pacote java.time, conhecido como Joda-Time, é a abordagem preferida, oferecendo API’s imutáveis e fluentes.
Alternativas incluem bibliotecas de terceiros como Joda-Time ou o Apache Commons Lang. Embora essas ainda sejam opções válidas, a API padrão java.time é robusta o suficiente para a maioria dos casos.
Detalhes de implementação envolvem entender a classe LocalDate para datas, LocalTime para horas, e LocalDateTime para ambos. Métodos como plus e minus são usados para cálculos diretos. Lembre-se dos ajustes de tempo: diferentes unidades de tempo (como ChronoUnit.DAYS) e especificidades de fuso horário se calculando timestamps.