Bom dia a todos!!
Estou com um probleminha que não sei em que ponto estou errando, veja:
Tenho que percorrer os anos , iniciando do ano do estudo e exibir todos os valores de vazão para cada a mês, ou seja:
Preciso pegar o período por exemplo : 07/1999 até 06/2000 e exibir na tela as vazões referente a este período.
No meu código já montei com o Calendar este período e está sendo pego corretamente. Percorro esta lista e vou exibindo as vazões. O problema ocorre quando chega no mês 12/1999 , ocorre o seguinte erro:
04/04/2018 10:38:17 [ERRO_EXECUCAO] Thread Name : AWT-EventQueue-0
04/04/2018 10:38:17 [ERRO_EXECUCAO] Descrição Mensagem : java.lang.ArrayIndexOutOfBoundsException: 12
Segue abaixo o trecho do meu código:
int[] valores = new int[12];
for (int i = 0; i < valores.length; i++) {
valores[i] = 0;
}
for (Vazao vazaoDoAno : listaVazoesPorAno) {
DateFormat df = new SimpleDateFormat("MM/yyyy");
Calendar calendarInicio = Calendar.getInstance();
calendarInicio.set(Calendar.MONTH, mesInicio - 1);
calendarInicio.set(Calendar.YEAR, ano);
Calendar calendarFinal = Calendar.getInstance();
calendarFinal.set(Calendar.MONTH, mesInicio - 2);
calendarFinal.set(Calendar.YEAR, ano + 1);
List<String> lista = new ArrayList<String>();
for (Calendar c = (Calendar) calendarInicio.clone(); c.compareTo(calendarFinal) <= 0; c.add(Calendar.MONTH, Calendar.YEAR)) {
lista.add(df.format(c.getTime()));
}
for (int i = 0; i < lista.size(); i++) {
String mesAno = lista.get(i);
String[] split = mesAno.split("/");
int mes = Integer.parseInt(split[0]);
ParametrosColuna colunaMes = colunasMeses.get(mes - 1);
Integer vazaoMes = (Integer) vazaoDoAno.getValorAtributo(colunaMes.getNomeAtributoEntidade());
valores[mes] += vazaoMes; // O erro ocorre nesta linha quando o mês é 12
}
}
Se alguém puder me ajudar ficarei muito grata.
Flavia