Bienvenidos sean a este post, hoy veremos un metodo de la clase Date.
Nota:
Esta clase como este metodo ya son obsoletos pero aun pueden usarse. Para ello, deben usar la opcion -Xlint al momento de compilarlo.
Este metodo compara dos objetos de tipo Date entre ellos, veamos su sintaxis:
objet.compareTo(otro_objeto);
Este metodo devuelve un valor entero para indicar las distintas posibilidades. Siendo 0 para cuando los objetos son iguales, -1 cuando el valor del objeto es anterior al del argumento, y 1 para indicar que la fecha es posterior a la del argumento. Analicemos el siguiente ejemplo:
import java.util.*;
public class Fecha
{
public static void main(String[] args)
{
Date fecha1 = new GregorianCalendar(2025,Calendar.OCTOBER,22).getTime();
Date fecha2 = new Date();
int resultado = fecha2.compareTo(fecha1);
if (resultado == 0)
System.out.println("Son iguales");
else if (resultado == -1)
System.out.println("fecha2 es anterior a fecha1");
else
System.out.println("fecha2 es posterior a fecha1");
}
}
Primero creamos dos objetos de tipo Date, el primero sera para generar una fecha mediante GregorianCalendar y con getTime lo convertimos a Date. El segundo sera la fecha actual, luego definimos una variable para almacenar el resultado del metodo aplicado al segundo objeto y pasamos al primer objeto como argumento. Con nuestro resultado obtenido usaremos un condicional para evaluar los tres posibles valores. La primera condicion sera para el 0 donde mostramos un mensaaje indicando que son iguales. La segunda condicion es para el -1 donde indicaremos que fecha2 es anterior a fecha1 y a else lo usamos para el valor de 1 e indicamos que fecha2 es posterior a fecha1. Con esto comentado, compilemos y veamos como es la salida:
$ java Fecha
fecha2 es anterior a fecha1
$
Como indica la fecha en la variable fecha2 es anterior a la informada, pero hagamos una pequeña modificacion para ver como funciona. Tomemos el codigo anterior y realicemos el siguiente cambio:
import java.util.*;
public class Fecha
{
public static void main(String[] args)
{
Date fecha1 = new GregorianCalendar(2025,Calendar.OCTOBER,22).getTime();
Date fecha2 = (Date) fecha1.clone();
int resultado = fecha2.compareTo(fecha1);
if (resultado == 0)
System.out.println("Son iguales");
else if (resultado == -1)
System.out.println("fecha2 es anterior a fecha1");
else
System.out.println("fecha2 es posterior a fecha1");
}
}
En este caso, hicimos un solo cambio. Tomamos al segundo objeto y le copiamos al objeto anterior mediante clone. Como este devuelve un objeto de tipo Object debemos «castear» a Date para que lo convierta a ese tipo. El resto del codigo sigue siendo el mismo, compilemos nuevamente y veamoss la salida:
$ java Fecha
Son iguales
$
Nota:
Si quieren saber mas sobre clone, hablamos sobre el mismo en este post.
Al ser los valores iguales procede a coincidir con la primer condicion y nos muestra el mensaje de su bloque. Tambien podemos observar que tiene las mismas conductas que before y after.
En resumen, hoy hemos visto a Date.compareTo, que es, para que sirve, como se utiliza, un ejemplo practico para verlo en accion, asi como tambien una pequeña modificacion para ver otrra respuesta. Espero les haya resultado de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donation
It’s for maintenance of the site, thanks!
$1.50
