|
|
@@ -327,15 +327,67 @@ public class StatisticsCalculator {
|
|
|
|
|
|
public static int[] langsteTempStijgingPeriode(ArrayList<Double> array)
|
|
|
{
|
|
|
+ ArrayList<Double> maxTempDag = new ArrayList<Double>();
|
|
|
+ ArrayList<Integer> periodeLengteList = new ArrayList<Integer>();
|
|
|
+ ArrayList<Integer> periodeStartList = new ArrayList<Integer>();
|
|
|
+
|
|
|
int[] index = new int[2];
|
|
|
int index1 = 0;
|
|
|
int index2 = 0;
|
|
|
+ int indexStart = 0;
|
|
|
+ int indexEind = 1;
|
|
|
+ int periodeLengte = 0;
|
|
|
+ int i = 0;
|
|
|
+ double maxTemp = 0;
|
|
|
|
|
|
- //Code
|
|
|
-
|
|
|
- index[0] = index1;
|
|
|
- index[1] = index2;
|
|
|
- return index;
|
|
|
+ //berekent maximale temp. per dag
|
|
|
+ for(double db : array)
|
|
|
+ {
|
|
|
+ i ++;
|
|
|
+ if(i % 1440 == 0)
|
|
|
+ {
|
|
|
+ maxTempDag.add(maxTemp);
|
|
|
+ maxTemp = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(db > maxTemp)
|
|
|
+ {
|
|
|
+ maxTemp = db;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for(int t = 1; t < maxTempDag.size(); t ++) //zoekt naar periodes van temp.stijgingen
|
|
|
+ {
|
|
|
+ if (maxTempDag.get(t) > maxTempDag.get(t - 1))
|
|
|
+ {
|
|
|
+ indexEind ++;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (maxTempDag.get(t) <= maxTempDag.get(t - 1))
|
|
|
+ {
|
|
|
+ periodeLengte = indexEind - indexStart;
|
|
|
+ periodeLengteList.add(periodeLengte);
|
|
|
+ periodeStartList.add(indexStart);
|
|
|
+ indexStart = indexEind;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+ Integer tempMax = Collections.max(periodeLengteList); //onthoudt de grootste periode van een temp.stijging
|
|
|
+
|
|
|
+ for (int u = 0; u < periodeLengteList.size(); u ++) //pakt de index van de grootste periode
|
|
|
+ {
|
|
|
+ if (tempMax == periodeLengteList.get(u))
|
|
|
+ {
|
|
|
+ index1 = u;
|
|
|
+ index2 = tempMax - u;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ index[0] = index1 * 1440;
|
|
|
+ index[1] = index2 * 1440;
|
|
|
+ return index;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
}
|