Java:
Calcular una fecha en el futuro o pasado
Cómo Hacerlo:
En Java, podemos usar LocalDate
para calcular fechas. Un ejemplo simple sería:
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class CalculoFecha {
public static void main(String[] args) {
LocalDate hoy = LocalDate.now();
LocalDate futuro = hoy.plusDays(10);
LocalDate pasado = hoy.minus(1, ChronoUnit.WEEKS);
System.out.println("Hoy: " + hoy);
System.out.println("Futuro (10 días después): " + futuro);
System.out.println("Pasado (1 semana antes): " + pasado);
}
}
Ejecutando el código anterior te dará algo como esto:
Hoy: 2023-04-05
Futuro (10 días después): 2023-04-15
Pasado (1 semana antes): 2023-03-29
Análisis Profundo:
Antes de Java 8, fechas se manejaban con java.util.Date
y java.util.Calendar
, que eran menos intuitivas y tenían problemas de diseño. Con Java 8 llegó la API de fecha y hora java.time
, mucho más robusta y fácil de usar.
Una alternativa a LocalDate
es Calendar
, pero no es recomendable por su complejidad y mutabilidad. Por ejemplo:
import java.util.Calendar;
public class CalculoConCalendar {
public static void main(String[] args) {
Calendar calendario = Calendar.getInstance();
calendario.add(Calendar.DATE, 10);
System.out.println("Futuro (10 días después): " + calendario.getTime());
}
}
No obstante, LocalDate
y su API java.time
superior son la elección moderna y menos propensa a errores.
En cuanto a detalles de implementación, plus
y minus
son métodos inmutables que no cambian la instancia original de LocalDate
; crean una nueva. Por eso, trabajar con fechas en Java ahora es más seguro y predecible.
Ver También:
Para profundizar más, puede visitar:
- Documentación oficial de
LocalDate
: https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html - Tutorial de Oracle sobre la fecha y hora en Java: https://docs.oracle.com/javase/tutorial/datetime/
- Ejemplos y usos de
java.time
en Baeldung: https://www.baeldung.com/java-8-date-time-intro