Calendar

3 respostas
J

Bom dia, estou passando a data 2018, 5, 31 para função DatePart, porém quando eu peço para me retornar o mês ele me retorna como mês “6” e não mês “5” como informado. Estou observando que isso acontece sempre quando passo o ultimo dia do mês.

Calendar Data1 = new GregorianCalendar(2018, 5, 31);
int result = Data.DatePart(Tipo.Dia, Data1);

sendo assim o resultado desse método fica assim:

Dia: 01 - deveria ser 31;

Mês: 06 - Deveria ser 06;

Ano: 2018
public static int DatePart(Tipo tipo, Calendar data)
		throws CadastroException {
	
	
	if (tipo.equals(Tipo.Dia)) {
		return data.get(Calendar.DAY_OF_MONTH);
	}else if (tipo.equals(Tipo.Mes)) {
		return data.get(Calendar.MONTH);
	}else if(tipo.equals(Tipo.Ano))
	{
		return data.get(Calendar.YEAR);
	}else
	{
		return 0;
	}
	
	
}

3 Respostas

Mike

Bom dia!
Os meses em Java começam em 0, se você quer o mês Maio, deverá passar o valor 4 e não 5

darlan_machado

Apenas complementando, a classe Calendar trabalha desta forma

Mike

Opa, bem lembrado :+1:
Obrigado

Criado 10 de maio de 2018
Ultima resposta 10 de mai. de 2018
Respostas 3
Participantes 3