Hi Leute,
ich möchte mit einer Funktion Werte aus einer Datenbank zusammenfassen. Also aus 5. Minuten Durchschnittswerten, stündliche Durschschnittswerte machen.
Die Werte kommen in einem selbst definierten Datentyp an:
davon bekommen ich nur ein ganzes Array
Mit der Methode toHour() möchte ich dieses Array nun ausdünnen und alle Werte, die in der selben Stunde angelegt wurden zusammen addieren und einen Durchschnitt ausrechnen.
Nur leider funzt das irgendwie nicht.
Ich vergleiche quasi die Stunde und alle Werte die innerhalb einer Stunde angelegt wurden werden addiert.
Achja das Array kommt schon sortiert an.
Danke und Grüße
ich möchte mit einer Funktion Werte aus einer Datenbank zusammenfassen. Also aus 5. Minuten Durchschnittswerten, stündliche Durschschnittswerte machen.
Die Werte kommen in einem selbst definierten Datentyp an:
Java:
public class ResultList {
private double value;
private String hour;
private String minute;
private String second;
private String day;
private String mounth;
private String year;
.....
}
davon bekommen ich nur ein ganzes Array
Mit der Methode toHour() möchte ich dieses Array nun ausdünnen und alle Werte, die in der selben Stunde angelegt wurden zusammen addieren und einen Durchschnitt ausrechnen.
Java:
public ResultList[] toHour(ResultList[] rs){
int j = 0;
double counter = 0.00;
int check;
check = Integer.valueOf(rs[0].getHour());
double sum = 0.00;
//Groesse des neuen Arrays bestimmen
for(int i=0;i < rs.length;i++){
if(check != Integer.valueOf(rs[i].getHour())){
j++;
check = Integer.valueOf(rs[i].getHour());
}
}
check = Integer.valueOf(rs[0].getHour());
rsNew = new ResultList[j];
j = 0;
// Werte in das neue Arry einfuegen
for(int i=0;i < rs.length;i++){
if(check == Integer.valueOf(rs[i].getHour())){
sum+=rs[i].getValue();
counter++;
}else{
System.out.println(rs[i].getHour());
rsNew[j].setValue(sum/counter);
rsNew[j].setHour(rs[i-1].getHour());
rsNew[j].setMounth(rs[i-1].getMounth());
rsNew[j].setDay(rs[i-1].getDay());
rsNew[j].setYear(rs[i-1].getYear());
counter = 0.00;
sum = 0.00;
j++;
check = Integer.valueOf(rs[i].getHour());
sum+=rs[i].getValue();
counter++;
}
}
return rsNew;
}
Nur leider funzt das irgendwie nicht.
Ich vergleiche quasi die Stunde und alle Werte die innerhalb einer Stunde angelegt wurden werden addiert.
Achja das Array kommt schon sortiert an.
Danke und Grüße