teichmann@5831: package org.dive4elements.river.utils; sascha@3007: sascha@3007: import gnu.trove.TLongArrayList; sascha@3007: sascha@3007: import java.util.Date; sascha@3007: sascha@3007: public class DateAverager sascha@3007: { sascha@3007: protected TLongArrayList dates; sascha@3007: sascha@3007: public DateAverager() { sascha@3007: dates = new TLongArrayList(); sascha@3007: } sascha@3007: sascha@3007: public void add(Date date) { sascha@3007: dates.add(date.getTime()); sascha@3007: } sascha@3007: sascha@3007: public Date getAverage() { sascha@3007: int N = dates.size(); sascha@3007: if (N == 0) { sascha@3007: return null; sascha@3007: } sascha@3007: long min = dates.min(); sascha@3007: long sum = 0L; sascha@3007: for (int i = 0; i < N; ++i) { sascha@3007: sum += dates.getQuick(i) - min; sascha@3007: } sascha@3007: return new Date(min + (long)Math.round(sum/(double)N)); sascha@3007: } sascha@3007: sascha@3007: public void clear() { sascha@3007: dates.resetQuick(); sascha@3007: } sascha@3007: } sascha@3007: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :