Daily Totals storing, with max min average total
This commit is contained in:
75
src/main/java/com/henrypump/poc/Measurement.java
Normal file
75
src/main/java/com/henrypump/poc/Measurement.java
Normal 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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user