miércoles, 28 de septiembre de 2011

Diferencias entre roll y add(Sumar, diferenciar o agregar meses o días a una fecha objeto Calendar)

Primero que nada recordemos que en el objeto calendar en java los meses son manejados como arreglos es decir el mes cero 0=enero,1=febrero, para este ejemplo utilizaremos la siguiente fecha: 30 de Enero del 2011.

import java.util.Calendar;

public static void main(String[] args) throws Exception{
     
        Calendar cal1 = Calendar.getInstance();
       
        cal1.set(2011,0,30);
        cal1.roll(Calendar.MONTH, false);//false para restar true para sumar
             System.out.println(cal1.get(Calendar.DAY_OF_MONTH)+" "+cal1.get(Calendar.MONTH)+" "+cal1.get(Calendar.YEAR));
    }

Imprime como resultado 30 11 2011//recordando que 11 es igual a Diciembre


Si ponemos atención roll regresa o resta el mes pero no el año


Y si sustituimos la línea de roll por cal1.add(Calendar.MONTH,-1);

obtendremos algo así 30 11 2010

Add hace los calculos pero tomando en cuenta el añó

Cualquiera de los 2 métodos es capaz de calcular el ultimo día del mes el caso de febrero

cal1.set(2011,2,30);//recordando que el 2 representa el mes de Marzo
//la salida sería la salida sería 28 1 2011  
 espero y les haya servido

No hay comentarios:

Publicar un comentario