MatrixDisplay2025/src/mode/Rest.h

62 lines
1.2 KiB
C

#ifndef REST_H
#define REST_H
struct Rest {
uint64_t millisTotal;
uint64_t decisTotal;
uint64_t secondsTotal;
uint64_t minutesTotal;
uint64_t hoursTotal;
uint64_t daysTotal;
uint32_t decisPart;
uint32_t secondsPart;
uint32_t minutesPart;
uint32_t hoursPart;
uint32_t daysPart;
explicit Rest(const uint32_t millisTotal)
: millisTotal(millisTotal),
decisTotal(millisTotal / 100),
secondsTotal(decisTotal / 10),
minutesTotal(secondsTotal / 60),
hoursTotal(minutesTotal / 60),
daysTotal(hoursTotal / 24),
decisPart(decisTotal % 10),
secondsPart(secondsTotal % 60),
minutesPart(minutesTotal % 60),
hoursPart(hoursTotal % 24),
daysPart(daysTotal) {
//
}
bool deciChanged(const Rest &rest) const {
return decisTotal != rest.decisTotal;
}
bool secondChanged(const Rest &last) const {
return secondsTotal != last.secondsTotal;
}
bool hourChanged(const Rest &rest) const {
return hoursTotal != rest.hoursTotal;
}
void log() const {
Serial.printf("%3d.%02d:%02d:%02d.%d\n", daysPart, hoursPart, minutesPart, secondsPart, decisPart);
}
};
#endif