miércoles, 6 de marzo de 2013

Como restar o sumar N dias,meses y/o Años a una fecha con Calendar de Java.


Realizar operación con la Clase Calendar es fácil y rápido a comparación de la Clase Date en java

el siguiente codigo muestra como restar un día de la fecha actual p.e::
-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°
01/03/13 - (1 dia) = 28/02/13
-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°

        Calendar c1 = GregorianCalendar.getInstance();
        System.out.println("Fecha actual: " + c1.getTime().toLocaleString());


        SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yy");
        System.out.println("Fecha Formateada: " + sdf.format(c1.getTime()));


        c1.add(Calendar.DATE, -1);
        System.out.println("Fecha Formateada: " + sdf.format(c1.getTime()));

-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°
ejemplo 2 sumar un dia:
-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°

06/03/13 + (1 dia) = 07/03/13

        Calendar c1 = GregorianCalendar.getInstance();
        System.out.println("Fecha actual: " + c1.getTime().toLocaleString());
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MMMMM/yyyy hh:mm:ss");
        System.out.println("Fecha Formateada: "+sdf.format(c1.getTime()));
        sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
        System.out.println("Fecha Formateada: "+sdf.format(c1.getTime()));
        c1.add(Calendar.DATE, 1);
        System.out.println("Fecha Formateada: "+sdf.format(c1.getTime()));


-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°
ejemplo 3 mas un mes y mas un año
-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°-°

        c1.add(Calendar.MONTH, 1);
        System.out.println("Fecha Formateada: "+sdf.format(c1.getTime()));
        c1.add(Calendar.YEAR, 1);
        System.out.println("Fecha Formateada: "+sdf.format(c1.getTime()));

Saludos !!

9 comentarios:

  1. Y como seria si quisiesemos conseguirlo sin utilizar la clase gregorian calendar? Es decir, conseguir cuantos dias hay entre una fecha y otra sin usar ninguna libreria

    ResponderEliminar
  2. si quisiera mostrar el resultado en un jtextfield, disculpen estoy empesando en java y cuando trato de dar el System.print no me muestra nada en el field.

    ResponderEliminar
    Respuestas
    1. Seria de la siguiente forma:

      jtextfield.getText(sdf.format(c1.getTime()));

      Donde la palabra "jtextfield" es el nombre de tu variable jtextfield

      Eliminar
  3. Hola, te comento lo que me pasa... mi idea es a la fecha actual (que es la que extraigo de la computadora) sumarle 7 dias y compararla con una fecha que tengo en un jtable con el formato: yyyy-MM-dd.
    estoy intentando de toda la forma y no me sale nada.. no sabes como puedo lograrlo?
    Saluods y muchas gracias.

    ResponderEliminar