En el programa desarrollado y mostrado en esta oportunidad, se han usado tres clases de la biblioteca de Java 8: la clase java.time.Period que sirve para determinar rangos como el total de años entre dos fechas, la clase java.time.format.DateTimeFormatter que sirve para dar diversos formatos a la fecha, y principalmente la clase java.time.LocalDate que es un objeto de fecha y hora inmutable que representa una fecha, a menudo visto como año-mes-día, además permite realizar de forma simple diversas operaciones de fecha.
A continuación, se muestra la clase GestionarFechas que demuestra parte de la funcionalidad de la clase LocalDate.
package com.sistemajava; import java.time.LocalDate; import java.time.Period; import java.time.format.DateTimeFormatter; public class GestionarFechas { public static void main(String[] args) { LocalDate fechaActual, nuevaFecha, fechaModificada; String fechaFormateada; fechaActual = LocalDate.now(); fechaFormateada = fechaActual.format(DateTimeFormatter.ISO_DATE); System.out.println("Fecha actual en formato aaaa-mm-dd: " + fechaFormateada); fechaFormateada = fechaActual.format(DateTimeFormatter.ofPattern("dd/MM/yyyy")); System.out.println("Fecha actual en formato dd/mm/aaaa: " + fechaFormateada); fechaFormateada = fechaActual.format(DateTimeFormatter.ofPattern("dd-MMM-yyyy")); System.out.println("Fecha actual en formato dd-mes-aaaa: " + fechaFormateada); fechaFormateada = fechaActual.format(DateTimeFormatter.BASIC_ISO_DATE); System.out.println("Fecha actual en formato aaaammdd: " + fechaFormateada); fechaFormateada = fechaActual.format(DateTimeFormatter.ISO_ORDINAL_DATE); System.out.println("Fecha actual en formato aaaa-dias: " + fechaFormateada); nuevaFecha = LocalDate.parse("1999-12-31"); System.out.println("Nueva fecha en formato aaaa-mm-dd: " + nuevaFecha.toString()); fechaFormateada = nuevaFecha.getDayOfMonth() + "." + nuevaFecha.getMonthValue() + "." + nuevaFecha.getYear(); System.out.println("Nueva fecha en formato dd.mm.aaaa: " + fechaFormateada); fechaModificada = nuevaFecha.plusDays(40); System.out.println("Fecha modificada en 40 día mas: " + fechaModificada.toString()); fechaModificada = nuevaFecha.plusMonths(3); System.out.println("Fecha modificada en 3 meses mas: " + fechaModificada.toString()); fechaModificada = nuevaFecha.plusYears(5); System.out.println("Fecha modificada en 5 años mas: " + fechaModificada.toString()); fechaModificada = nuevaFecha.plusYears(-3); System.out.println("Fecha modificada en 3 años menos: " + fechaModificada.toString()); nuevaFecha = LocalDate.of(2016, 2, 12); fechaModificada = LocalDate.of(2016, 2, 12); if(nuevaFecha.isEqual(fechaModificada)) System.out.println("La fecha " + nuevaFecha.toString() + " es igual a " + fechaModificada.toString()); fechaModificada = LocalDate.of(2016, 3, 12); if(nuevaFecha.isBefore(fechaModificada)) System.out.println("La fecha " + nuevaFecha.toString() + " es antes de " + fechaModificada.toString()); fechaModificada = LocalDate.of(2016, 1, 12); if(nuevaFecha.isAfter(fechaModificada)) System.out.println("La fecha " + nuevaFecha.toString() + " es despues de " + fechaModificada.toString()); if(nuevaFecha.isLeapYear()) System.out.println("La fecha " + nuevaFecha.toString() + " es de año bisiesto"); fechaModificada = nuevaFecha.withYear(2015); System.out.println("La fecha " + nuevaFecha.toString() + " se modifico el año " + fechaModificada.toString()); fechaModificada = nuevaFecha.withMonth(5); System.out.println("La fecha " + nuevaFecha.toString() + " se modifico el mes " + fechaModificada.toString()); fechaModificada = nuevaFecha.withDayOfMonth(20); System.out.println("La fecha " + nuevaFecha.toString() + " se modifico el día " + fechaModificada.toString()); fechaModificada = LocalDate.of(2020, 2, 12); Period periodo = nuevaFecha.until(fechaModificada); System.out.println("Entre las fechas " + nuevaFecha.toString() + " y " + fechaModificada.toString() + " existe " + periodo.getYears() + " años"); } }
El resultado de ejecutar el programa se muestra en la siguiente figura:
Estuvo entendible (Y)
ResponderEliminar