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.