X-Git-Url: https://www.flypig.org.uk/git/?p=harbour-pedalo.git;a=blobdiff_plain;f=src%2Fstatsweekdaycongestion.cpp;fp=src%2Fstatsweekdaycongestion.cpp;h=685e17540876eea8322df79d8247452dfabb11b0;hp=0000000000000000000000000000000000000000;hb=dc14479d561196e19417c4ecf78e847ec4b43b7c;hpb=76b5f460f9a5052571d730918b2ee778753f4c59 diff --git a/src/statsweekdaycongestion.cpp b/src/statsweekdaycongestion.cpp new file mode 100644 index 0000000..685e175 --- /dev/null +++ b/src/statsweekdaycongestion.cpp @@ -0,0 +1,50 @@ +#include + +#include "statsweekdaycongestion.h" + +StatsWeekdayCongestion::StatsWeekdayCongestion(JourneyModel * journeys) : + journeys(journeys) +{ + title = "Congested days (cycles passed)"; + units = ""; + labels = QStringList{"M", "T", "W", "Th", "F", "S", "Su"}; +} + +void StatsWeekdayCongestion::update() { + quint32 passed[7]; + unsigned int count[7]; + int pos; + + qDebug() << "Calculating values"; + values.clear(); + + for (pos = 0; pos < 7; pos++) { + passed[pos] = 0u; + count[pos] = 0u; + } + + foreach (Journey const &journey, journeys->getData()) { + QDate date = journey.getStartDate(); + int dayofweek = date.dayOfWeek() - 1; + if (dayofweek >= 0) { + passed[dayofweek] += journey.getOvertook() + journey.getOvertakenBy(); + count[dayofweek]++; + } + } + + maxval = 0.0; + for (pos = 0; pos < 7; pos++) { + float result = 0.0f; + if (count[pos] > 0) { + result = ((double)passed[pos] / (double)count[pos]); + } + if (result > maxval) { + maxval = result; + } + values << result; + } + + step = qRound(maxval / 5.0); + + qDebug() << "Calculated values"; +}