Java, sumar o restar horas y días a una fecha - Developando.com

Java, sumar o restar horas y días a una fecha

En este tutorial vamos a mostrar unos ejemplos para trabajar con fechas en Java. Los ejemplos que aparecen a continuación sirven para:

  • Sumar X días a una fecha dada
  • Restar X días a una fecha dada
  • Sumar X horas a una fecha dada
  • Restar X horas a una fecha dada

En el tutorial trabajaremos con objetos de la clase ‘java.util.Calendar’ y ‘java.util.Date’.

Los ejemplos empleados siguen el mismo patrón, primero se crea un objeto ‘java.util.Calendar‘ con el objeto ‘java.util.Date‘ que contiene la fecha que se recibe por parámetro, y posteriormente se le suman o restan las unidades de tiempo que se pasen como parámetro.

Sumar o restar días a una fecha java

En el siguiente fragmento de código se crea un método que recibe dos parámetros, uno con la fecha a modificar, y el segundo con la cantidad de días a sumar o restar. Si la variable ‘dias‘ es mayor que cero entonces se sumarán dichos días a la fecha, por el contrario, si la variable días es menor que cero, entonces se restarán dichos días a la fecha:

 Java | 
 
 copy code |
?

01
// Suma los días recibidos a la fecha  
02
 public Date sumarRestarDiasFecha(Date fecha, int dias){
03
 
04
      Calendar calendar = Calendar.getInstance();
05
      calendar.setTime(fecha); // Configuramos la fecha que se recibe
06
      calendar.add(Calendar.DAY_OF_YEAR, dias);  // numero de días a añadir, o restar en caso de días<0
07
 
08
      return calendar.getTime(); // Devuelve el objeto Date con los nuevos días añadidos
09
 
10
 }

Sumar y restar horas a una fecha java

Al igual que en el caso anterior, en función del valor de la variable ‘horas‘ se sumarán o restarán dichas horas a la fecha indicada:

 Java | 
 
 copy code |
?

01
// Suma o resta las horas recibidos a la fecha  
02
 public Date sumarRestarHorasFecha(Date fecha, int horas){
03
 
04
      Calendar calendar = Calendar.getInstance();
05
      calendar.setTime(fecha); // Configuramos la fecha que se recibe
06
      calendar.add(Calendar.HOUR, horas);  // numero de horas a añadir, o restar en caso de horas<0
07
 
08
      return calendar.getTime(); // Devuelve el objeto Date con las nuevas horas añadidas
09
 
10
 }

Otros parámetros configurables en las fechas

Si observamos los dos método podemos ver que únicamente se cambia ‘Calendar.DAY_OF_YEAR‘ por ‘Calendar.HOUR‘. Esto es así porque el método ‘Calendar.add‘ recibe como primer parámetro el campo del calendario que se va a modificar y como segundo el valor que se sumará o restará. Por tanto, dependiendo del campo que utilizemos podremos sumar o restar cierta cantidad de unidades a la fecha indicada.

Otros posibles valores serían:

  • Calendar.MILISECOND para milisegundos
  • Calendar.SECOND para segundos
  • Calendar.MINUTE para minutos
  • Calendar.HOUR para horas
  • Calendar.DAY_OF_YEAR para días
  • Calendar.MONTH para meses
  • Calendar.YEAR para años
Share Button
David Otero

Sobre 

David Otero es uno de los creadores y desarrolladores que componen Developando. Puedes contactar con él en León, Zamora o Madrid.
Conoce a en Google+.

    Find more about me on:
  • facebook
  • googleplus
  • linkedin
  • twitter

Deja tu comentario

Loading Disqus Comments ...
Loading Facebook Comments ...