3 #include "statshourjourneys.h"
6 #define HIGHESTHOUR (21)
8 StatsHourJourneys::StatsHourJourneys(JourneyModel
* journeys
) :
11 title
= "Journey proportions per hour (%)";
15 for (int hour
= LOWESTHOUR
; hour
<= HIGHESTHOUR
; hour
++) {
16 labels
<< QString::number(hour
);
20 void StatsHourJourneys::update() {
21 unsigned int minsperhour
[24];
25 qDebug() << "Calculating values";
28 for (pos
= 0; pos
< 24; pos
++) {
29 minsperhour
[pos
] = 0u;
33 foreach (Journey
const &journey
, journeys
->getData()) {
34 QTime time
= journey
.getStartTime();
35 int hour
= time
.hour();
36 int startmin
= time
.minute();
37 int remaining
= (journey
.getDuration() / 60);
38 totalmins
+= remaining
;
40 while (remaining
> 0) {
41 // toadd is always greater than 0, so the loop is guaranteed to exit
42 unsigned int toadd
= (startmin
+ remaining
) < 60 ? remaining
: 60 - startmin
;
43 minsperhour
[hour
] += toadd
;
47 hour
= (hour
+ 1) % 24;
51 for (pos
= LOWESTHOUR
; pos
<= HIGHESTHOUR
; pos
++) {
54 result
= ((double)minsperhour
[pos
] / (double)totalmins
);
59 qDebug() << "Calculated values";