[RESOLVIDO] Adicionando mês e formatando data com GregorianCalendar

3 respostas
wilsontads

Estou tentando utilizar o GregorianCalendar aqui, no entanto ele me retorna o ano 0001.
Vejam:

GregorianCalendar gc = new GregorianCalendar();
        //gc.setTime(date);
        
        gc.set(GregorianCalendar.YEAR, GregorianCalendar.MONTH, 15,0,0);
        gc.roll(GregorianCalendar.MONTH, 1);
        
        SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");        
        //date = gc.getTime();
        
        System.out.println("Vencimento: "+sdf.format(gc.getTime()));

Alguém já passou por algo semelhante, pode ajudar?

3 Respostas

wilsontads

Ele avança um mês, conforme desejado… só que o retorno é o seguinte:

Vencimento: 15-04-0001

pmlm

Esse output está correcto, de acordo com o teu código.

O que tu queres é simplesmente:

GregorianCalendar gc = Calendar.getInstance();  //Data actual
   
          
gc.set(GregorianCalendar.DAY_OF_MONTH, 15);   //Dia 15 do mês actual
gc.roll(GregorianCalendar.MONTH, 1);  
          
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");          
   
System.out.println("Vencimento: "+sdf.format(gc.getTime()));
wilsontads

Valeu.. deu certinho, só tive que fazer uma pequena conversão na primeira linha.. ficou assim:

GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();  //Data actual  


            gc.set(GregorianCalendar.DAY_OF_MONTH, 15);   //Dia 15 do mês actual  
            gc.roll(GregorianCalendar.MONTH, 1);

            SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");

            //date = gc.getTime();

            System.out.println("Vencimento: " + sdf.format(gc.getTime()));
Criado 5 de março de 2012
Ultima resposta 5 de mar. de 2012
Respostas 3
Participantes 2