Pessoal,
estou com problema nesse metodo para fazer um loop para usar uma regra que se o período inicial é igual ao período final ele retorna diário e se o período inicial for diferente ao peródo final ele retorna mensal.
Está aqui a parte:
private XYDataset createDataset() {
final XYSeries series = new XYSeries("Variação de chuvas");
setIdEstacaoPiezometrica(18);
list();
NivelAgua nivelAgua = new NivelAgua();
List<NivelAgua> listNivelAgua = (List) getRequest().getSession().getAttribute(CHAVE_LISTA_RESULTADO);
String dia = "0";
String mes = "0";
double somaValores = 0;
int divisor = 0;
int contador = 0;
Double mediaDia = new Double(0);
Double mediaMes = new Double(0);
HashMap<Object, Object> diasComMedia = new HashMap<Object, Object>();
HashMap<Object, Object> mesComMedia = new HashMap<Object, Object>();
for (NivelAgua na : listNivelAgua) {
dia = new SimpleDateFormat("d").format(na.getDataHoraMedicao());
mes = new SimpleDateFormat("m").format(na.getDataHoraMedicao());
for (NivelAgua naI : listNivelAgua) {
String diaI = new SimpleDateFormat("d").format(naI.getDataHoraMedicao());
String mesI = new SimpleDateFormat("m").format(naI.getDataHoraMedicao());
if (diaI.equals(dia)) {
contador += 1;
somaValores += naI.getNivelAguaAsDouble();
} else {
if (diasComMedia.get(dia) == null) {
diasComMedia.put(dia, somaValores / contador);
series.add(Double.parseDouble(dia), somaValores / contador);
//System.out.println("Dia: " + dia + " | Media: "+ somaValores / contador);
} else {
if (mesI.equals(mes)) {
contador += 1;
somaValores += naI.getNivelAguaAsDouble();
} else {
if (mesComMedia.get(dia) == null) {
mesComMedia.put(dia, somaValores / contador);
series.add(Double.parseDouble(dia), somaValores / contador);
}
}
}
}
somaValores = 0;
divisor = 0;
dia = diaI;
mes = mesI;
contador = 0;
}
}
Tem alguém que pode me ajudar?
Agradecido
Vitor Prieto