diff --git a/StatisticsCalculator.java b/StatisticsCalculator.java index 5865df9..213ec4a 100644 --- a/StatisticsCalculator.java +++ b/StatisticsCalculator.java @@ -327,15 +327,67 @@ public class StatisticsCalculator { public static int[] langsteTempStijgingPeriode(ArrayList array) { + ArrayList maxTempDag = new ArrayList(); + ArrayList periodeLengteList = new ArrayList(); + ArrayList periodeStartList = new ArrayList(); + 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 + //berekent maximale temp. per dag + for(double db : array) + { + i ++; + if(i % 1440 == 0) + { + maxTempDag.add(maxTemp); + maxTemp = 0; + } + + if(db > maxTemp) + { + maxTemp = db; + } + } - index[0] = index1; - index[1] = index2; - return index; + 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; + } +} + }