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

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

[code]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()));[/code]

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

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

Vencimento: 15-04-0001

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())); 

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

[code]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()));[/code]