Daily Totals storing, with max min average total

This commit is contained in:
Patrick McDonagh
2017-02-03 16:41:42 -06:00
parent 2730d2ee0f
commit 73d376038c
27 changed files with 960 additions and 410 deletions

View File

@@ -0,0 +1,75 @@
package com.henrypump.poc;
/**
* Created by patrickjmcd on 2/3/17.
*/
public class Measurement {
private double currentValue;
private double lastValue;
private double average;
private double total;
private double max;
private double min;
private double[] totalHistory = new double[30];
private double[] averageHistory = new double[30];
private long numMeasurements;
Measurement(){
average = 0;
total = 0;
numMeasurements = 0;
max = Double.MIN_VALUE;
min = Double.MAX_VALUE;
}
public double getCurrentValue() {
return currentValue;
}
public double getLastValue() {
return lastValue;
}
public double getAverage() {
return average;
}
public double getTotal() {
return total;
}
public long getNumMeasurements() {
return numMeasurements;
}
public void update(double value)
{
lastValue = currentValue;
currentValue = value;
numMeasurements = numMeasurements + 1;
average = average * (((float)numMeasurements - 1)/(float)numMeasurements) + (currentValue / (float)numMeasurements);
total = total + value;
max = Math.max(max, currentValue);
min = Math.min(min, currentValue);
};
public void endOfDay(){
for(int i = 28; i >= 0; i--){
totalHistory[i] = totalHistory[i+1];
averageHistory[i] = averageHistory[i+1];
}
totalHistory[0] = total;
averageHistory[0] = average;
total = 0;
average = 0;
max = Double.MIN_VALUE;
min = Double.MAX_VALUE;
}
}