Pegar o último dia de um determinado mês

Olá pessoal,

Na classe Calendar() tem o método getActualMaximum(int field) onde eu posso o ultimo dia da semana, do mês, etc…certo! Porém, como eu faria para pegar o ultimo dia do mes x e não necessariamente do mês atual?
Se alguém souber me responder, ficarei mto grato!

[]´s
Aislan

É só setar o mês antes de perguntar qual o numéro de dias. Ex:

calendar.set(Calendar.MONTH, 1); //Definindo o mês atual para Fevereiro
//Exibindo o número de dias para o mês de fevereiro para o ano corrente
System.out.println(calendar.getActualMaximum(Calendar.MONTH));

Obrigado Bruno,

Funcionou, porém, ao invés de “calendar.getActualMaximum(Calendar.MONTH)” deve ser “calendar.getActualMaximum(Calendar.DAY_OF_MONTH”.

[]´s
Aislan

Acho que tem que setar o ano também, pois dependendo do ano o mês de fevereiro pode ter 28 ou 29 dias.

Comigo não funcionou, dá a mensagem “The method getActualMaximum(int) in the type Calendar is not applicable for the argumemts (Calendar)” na última linha de:

int messel = Integer.parseInt(messp.getSelectedItem().toString());
int anosel = Integer.parseInt(anosp.getSelectedItem().toString());
Calendar c = Calendar.getInstance();  
SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
c.set(Calendar.MONTH, messel);  
c.set(Calendar.YEAR, anosel);
int ultimo = Calendar.getActualMaximum(c);

[quote=ideiainformatica]Acho que tem que setar o ano também, pois dependendo do ano o mês de fevereiro pode ter 28 ou 29 dias.

Comigo não funcionou, dá a mensagem “The method getActualMaximum(int) in the type Calendar is not applicable for the argumemts (Calendar)” na última linha de:

int messel = Integer.parseInt(messp.getSelectedItem().toString());
int anosel = Integer.parseInt(anosp.getSelectedItem().toString());
Calendar c = Calendar.getInstance();  
SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
c.set(Calendar.MONTH, messel);  
c.set(Calendar.YEAR, anosel);
int ultimo = Calendar.getActualMaximum(c);

[/quote]

O código “int ultimo = Calendar.getActualMaximum©;” está incorreto, vc precisa utilizar a classe já instanciada e passar o campo para o método:

int ultimo = c.getActualMaximum(messel);

Obrigado, Fábio, mas já resolvi com as sugestões anteriores, ficou assim:

int messel = Integer.parseInt(messp.getSelectedItem().toString());
int anosel = Integer.parseInt(anosp.getSelectedItem().toString());
Calendar c = Calendar.getInstance();  
c.set(Calendar.MONTH, messel - 1);  
c.set(Calendar.YEAR, anosel);    
int ultimodia = c.getActualMaximum(Calendar.DAY_OF_MONTH);

Como eu não sou o autor do tópico, não consigo mudar a descrição para mostrar isto.