#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