Bump version to 0.2.2
[harbour-pedalo.git] / src / statsweekdaycongestion.cpp
1 #include "statsweekdaycongestion.h"
2
3 StatsWeekdayCongestion::StatsWeekdayCongestion(JourneyModel * journeys) :
4 journeys(journeys)
5 {
6 title = "Congestion by day (cycles per hour)";
7 units = "";
8 labels = QStringList{"M", "T", "W", "Th", "F", "S", "Su"};
9 }
10
11 void StatsWeekdayCongestion::update() {
12 double passed[7];
13 unsigned int count[7];
14 int pos;
15
16 barvalues.clear();
17
18 for (pos = 0; pos < 7; pos++) {
19 passed[pos] = 0u;
20 count[pos] = 0u;
21 }
22
23 foreach (Journey const &journey, journeys->getData()) {
24 QDate date = journey.getStartDate();
25 int dayofweek = date.dayOfWeek() - 1;
26 double duration = journey.getDuration() / (60.0 * 60.0);
27 if (dayofweek >= 0) {
28 passed[dayofweek] += (journey.getOvertook() + journey.getOvertakenBy()) / duration;
29 count[dayofweek]++;
30 }
31 }
32
33 maxval = 0.0;
34 for (pos = 0; pos < 7; pos++) {
35 float result = 0.0f;
36 if (count[pos] > 0) {
37 result = ((double)passed[pos] / (double)count[pos]);
38 }
39 if (result > maxval) {
40 maxval = result;
41 }
42 barvalues << result;
43 }
44
45 step = maxval > 5.0 ? qRound(maxval / 5.0) : (maxval / 5.0);
46 }