Descargar el PDF Descargar el PDF

Existen varias formas de comparar dos fechas en Java. Una fecha se representa internamente como un punto en el tiempo de tipo long : la cantidad de milisegundos que han transcurrido desde el 1 de enero de 1970. En Java, Date (en español, "fecha") es un objeto, lo cual significa que incluye varios métodos para establecer comparaciones. Cualquier método para comparar dos fechas, básicamente comparará el tiempo de esas fechas.

Método 1
Método 1 de 4:

Utilizar compareTo

Descargar el PDF
  1. La clase Date implementa Comparable<Date> ; por lo tanto, puedes comparar dos fechas directamente con el método compareTo. Si las fechas representan al mismo punto en el tiempo, el método devolverá un cero. Si la fecha que vas a comparar es anterior al argumento date , el método devolverá un valor menor a cero. Si la fecha que vas a comparar es posterior al argumento date , el método devolverá un valor mayor a cero. Si las fechas son iguales, el método devolverá un cero. [1]
  2. Necesitarás crear cada objeto date antes de comenzar a comparar las fechas. Una forma de hacerlo, es utilizando la clase SimpleDateFormat . Con ella puedes ingresar valores de fecha fácilmente en objetos de tipo date .
       SimpleDateFormat 
       sdf 
       = 
       new 
       SimpleDateFormat 
       ( 
       "yyyy-MM-dd" 
       ); 
       //Para declarar valores en nuevos objetos date, usa el mismo formato date que usaste al crear las fechas 
       Date 
       date1 
       = 
       sdf 
       . 
       parse 
       ( 
       "1995-02-23" 
       ); 
       //date1 es el 23 de febrero de 1995 
       Date 
       date2 
       = 
       sdf 
       . 
       parse 
       ( 
       "2001-10-31" 
       ); 
       //date2 es el 31 de octubre de 2001 
       Date 
       date3 
       = 
       sdf 
       . 
       parse 
       ( 
       "1995-02-23" 
       ); 
       //date3 es el 23 de febrero de 1995 
      
  3. El código que aparece a continuación te mostrará cada caso (menor que, igual y mayor que).
       date1 
       . 
       compareTo 
       ( 
       date2 
       ); 
       //date1 < date2, devuelve un valor menor que 0 
       date2 
       . 
       compareTo 
       ( 
       date1 
       ); 
       //date2 > date1, devuelve un valor mayor que 0 
       date1 
       . 
       compareTo 
       ( 
       date3 
       ); 
       //date1 = date3, se mostrará un 0 en la consola 
      
    Anuncio
Método 2
Método 2 de 4:

Utilizar equals , after y before

Descargar el PDF
  1. Las fechas pueden compararse con los métodos equals (igual), after (después) y before (antes). Si dos fechas representan al mismo punto en el tiempo, el método equals devolverá true (verdadero). Estos ejemplos usarán las fechas creadas previamente para el método compareTo . [2]
  2. El siguiente código muestra un caso verdadero y uno falso. Si date1 es anterior a date2 , before devolverá true . De lo contrario, devolverá false .
       System 
       . 
       out 
       . 
       print 
       ( 
       date1 
       . 
       before 
       ( 
       date2 
       )); 
       //muestra true (verdadero) 
       System 
       . 
       out 
       . 
       print 
       ( 
       date2 
       . 
       before 
       ( 
       date2 
       )); 
       //muestra false (falso) 
      
  3. El siguiente código muestra un caso verdadero y uno falso. Si date2 es posterior a date1 , after devolverá true . De lo contrario, devolverá false .
       System 
       . 
       out 
       . 
       print 
       ( 
       date2 
       . 
       after 
       ( 
       date1 
       )); 
       //muestra true (verdadero) 
       System 
       . 
       out 
       . 
       print 
       ( 
       date1 
       . 
       after 
       ( 
       date2 
       )); 
       //muestra false (falso) 
      
  4. El siguiente código muestra un caso verdadero y uno falso. Si las fechas son iguales, equals devolverá true . Si no lo son, devolverá false .
       System 
       . 
       out 
       . 
       print 
       ( 
       date1 
       . 
       equals 
       ( 
       date3 
       )); 
       //muestra true (verdadero) 
       System 
       . 
       out 
       . 
       print 
       ( 
       date1 
       . 
       equals 
       ( 
       date2 
       )); 
       //muestra false (falso) 
      
    Anuncio
Método 3
Método 3 de 4:

Utilizar la clase Calendar

Descargar el PDF
  1. La clase Calendar también tiene los métodos compareTo , equals , after y before que trabajan de la misma forma que se describió anteriormente para la clase date . Entonces, si la información está guardada en un objeto Calendar , no hay necesidad de extraer la fecha solo para hacer una comparación. [3]
  2. Para usar los métodos de Calendar , necesitarás crear algunas instancias de esta clase. Afortunadamente, puedes simplemente tomar las fechas de las instancias de Date que creaste antes.
       Calendar 
       cal1 
       = 
       Calendar 
       . 
       getInstance 
       (); 
       //declara cal1 
       Calendar 
       cal2 
       = 
       Calendar 
       . 
       getInstance 
       (); 
       //declara cal2 
       Calendar 
       cal3 
       = 
       Calendar 
       . 
       getInstance 
       (); 
       //declara cal3 
       cal1 
       . 
       setTime 
       ( 
       date1 
       ); 
       //applies date to cal1 
       cal2 
       . 
       setTime 
       ( 
       date2 
       ); 
       cal3 
       . 
       setTime 
       ( 
       date3 
       ); 
      
  3. El siguiente código deberá mostrar true ya que cal1 es anterior a cal2 .
       System 
       . 
       out 
       . 
       print 
       ( 
       cal1 
       . 
       before 
       ( 
       cal2 
       )); 
       //mostrará true (verdadero) 
      
  4. El siguiente código deberá mostrar false ya que cal1 es anterior a cal2 .
       System 
       . 
       out 
       . 
       print 
       ( 
       cal1 
       . 
       after 
       ( 
       cal2 
       )); 
       //mostrará false (falso) 
      
  5. El siguiente código muestra un ejemplo verdadero y uno falso. La condición depende de las instancias del calendario que se estén comparando. El código deberá mostrar true y luego false en la línea siguiente.
       System 
       . 
       out 
       . 
       println 
       ( 
       cal1 
       . 
       equals 
       ( 
       cal3 
       )); 
       //mostrará true (verdadero): cal1 == cal3 
       System 
       . 
       out 
       . 
       print 
       ( 
       cal1 
       . 
       equals 
       ( 
       cal2 
       )); 
       //mostrará false (falso): cal1 != cal2 
      
    Anuncio
Método 4
Método 4 de 4:

Utilizar getTime

Descargar el PDF
  1. También puedes comparar fechas directamente desde el punto en el tiempo que representan esas fechas, sin embargo, tal vez sea mejor usar los métodos anteriores porque son más legibles y por lo tanto más convenientes. Esta comparación se hará con dos tipos de datos primitivos, por lo tanto puedes hacerla con < , > y == .
  2. Antes de poder comparar las fechas, debes crear objetos enteros de tipo long con los datos de los objetos Date que habías creado. Afortunadamente, el método getTime se encargará de hacer el trabajo por ti.
       long 
       time1 
       = 
       getTime 
       ( 
       date1 
       ); 
       //declara la variable primitiva time1 a partir de date1 
       long 
       time2 
       = 
       getTime 
       ( 
       date2 
       ); 
       //declara la variable primitiva time2 a partir de date2 
      
  3. Utiliza el símbolo "menor que" (<) para comparar estos dos valores enteros. Como time1 es menor que time2 , deberá mostrarse el primer mensaje. La sentencia else se incluye con a fines de aplicar una sintaxis apropiada.
       if 
       ( 
       time1 
       < 
       time2 
       ){ 
       System 
       . 
       out 
       . 
       println 
       ( 
       "date1 es anterior a date2" 
       ); 
       //se mostrará este mensje porque time1 <time2 
       } 
       else 
       { 
       System 
       . 
       out 
       . 
       println 
       ( 
       "date1 es anterior a date2" 
       ); 
       } 
      
  4. Utiliza el símbolo "mayor que" (>) para comparar estos dos valores enteros. Como time1 es mayor que time2 , deberá mostrarse el primer mensaje. La sentencia else se incluye con a fines de aplicar una sintaxis apropiada.
       if 
       ( 
       time2 
       > 
       time1 
       ){ 
       System 
       . 
       out 
       . 
       println 
       ( 
       "date2 es posterior a date1" 
       ); 
       //se mostrará este mensje porque time2 > time1 
       } 
       else 
       { 
       System 
       . 
       out 
       . 
       println 
       ( 
       "date2 no es posterior a date1" 
       ); 
       } 
      
  5. Utiliza el símbolo de verificación de igualdad (==) para comparar estos dos valores enteros. Como time1 es igual que time2 , deberá mostrarse el primer mensaje. Si el programa llega hasta la sentencia else , significa que las fechas no son iguales. [4]
       if 
       ( 
       time1 
       == 
       time2 
       ){ 
       System 
       . 
       out 
       . 
       println 
       ( 
       "las fechas son iguales" 
       ); 
       } 
       else 
       { 
       System 
       . 
       out 
       . 
       println 
       ( 
       "las fechas no son iguales" 
       ); 
       //se mostrará este mensje porque time1 != time2 
       } 
      
    Anuncio

Acerca de este wikiHow

Esta página ha recibido 153 965 visitas.

¿Te ayudó este artículo?

Anuncio