Bug no GregorianCalendar? 31 de junho?

2 respostas
PauloBrito

O cal.getMaximum(Calendar.DAY_OF_MONTH) retorna 31!! Daí a data é convertida para 01/07. Bug? O que acontece?

class teste {
    static public void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        
        cal.set(Calendar.MONTH, 5); // Junho

        // Maior dia de junho, ou seja, 30... Pelo menos o meu calendário diz isso!
        cal.set(Calendar.DAY_OF_MONTH, cal.getMaximum(Calendar.DAY_OF_MONTH));
        
        DateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");          

        // Aqui ele imprime 01/07/2008
        System.out.println(df.format(cal.getTime()));

        // Aqui imprime 31!!
        System.out.println(String.valueOf(cal.getMaximum(Calendar.DAY_OF_MONTH)));

    }
}

2 Respostas

mueller

getActualMaximum

PauloBrito

Obrigado, Mueller. Resolvido.

Criado 25 de agosto de 2008
Ultima resposta 25 de ago. de 2008
Respostas 2
Participantes 2