20Time::Time(uint16_t millisecond, uint8_t second, uint8_t minute, uint8_t hour)
25bool Time::setTime(uint16_t millisecond, uint8_t second, uint8_t minute, uint8_t hour)
127 if (milliseconds >= 0)
129 addsec = milliseconds / 1000;
130 milliseconds -= addsec * 1000;
132 m_millisecond =
static_cast<uint16_t
>((m_millisecond + milliseconds) % 1000);
136 if ((
static_cast<int32_t
>(
millisecond()) + milliseconds) >= 0)
138 m_millisecond =
static_cast<uint16_t
>((milliseconds + m_millisecond) % 1000);
142 addsec = ((milliseconds +
millisecond()) / 1000) - 1;
143 m_millisecond =
static_cast<uint16_t
>((milliseconds + m_millisecond + 1000) % 1000);
146 SEMF_INFO(
"addMilliseconds to %u", m_millisecond);
156 addmin = seconds / 60;
157 seconds -= addmin * 60;
158 addmin += (
second() + seconds) / 60;
159 m_second =
static_cast<uint8_t
>((m_second + seconds) % 60);
163 if ((
static_cast<int32_t
>(
second()) + seconds) >= 0)
165 m_second =
static_cast<uint8_t
>((seconds + m_second) % 60);
169 addmin = ((seconds +
second()) / 60) - 1;
170 m_second =
static_cast<uint8_t
>(((seconds + m_second) % 60) + 60);
179 int32_t addhours = 0;
183 addhours = minutes / 60;
184 minutes -= addhours * 60;
185 addhours += (
minute() + minutes) / 60;
186 m_minute =
static_cast<uint8_t
>((m_minute + minutes) % 60);
190 if ((
static_cast<int32_t
>(
minute()) + minutes) >= 0)
192 m_minute =
static_cast<uint8_t
>((minutes + m_minute) % 60);
196 addhours = ((minutes +
minute()) / 60) - 1;
197 m_minute =
static_cast<uint8_t
>((minutes + m_minute % 60) + 60);
208 m_hour =
static_cast<uint8_t
>((hours + m_hour) % 24);
212 if ((
static_cast<int32_t
>(
hour()) + hours) >= 0)
214 m_hour =
static_cast<uint8_t
>((hours + m_hour) % 24);
218 m_hour =
static_cast<uint8_t
>((hours + m_hour % 24) + 24);
260 return !(*
this == timeToCompareWith);
280 if (*
this < timeToCompareWith || *
this == timeToCompareWith)
292 return !(*
this <= timeToCompareWith);
297 return !(*
this < timeToCompareWith);
300bool Time::isValid(uint16_t millisecond, uint8_t second, uint8_t minute, uint8_t hour)
The Time class provides clock time functions.
bool setMinute(uint8_t minute)
Sets the minutes.
uint16_t millisecond() const
Returns the milliseconds from system clock or static value.
int32_t timeSpan(const Time &subtract) const
Returns a time difference between this time and subtract.
static bool isValid(uint16_t millisecond, uint8_t second, uint8_t minute, uint8_t hour)
Returns if the given time is valid.
bool setTime(uint16_t millisecond, uint8_t second, uint8_t minute, uint8_t hour)
Sets date time information and system clock if Rtc is registered.
bool operator<=(const Time &timeToCompareWith) const
Compares this time with other.
bool operator<(const Time &timeToCompareWith) const
Compares this time with other.
bool setMillisecond(uint16_t millisecond)
Sets the milliseconds.
uint32_t millisecondsSinceStartOfDay() const
Returns the milliseconds since start of the day.
bool setSecond(uint8_t second)
Sets the seconds.
void addMilliseconds(int32_t milliseconds)
Adds milliseconds to this time.
bool setHour(uint8_t hour)
Sets the hours.
bool operator>=(const Time &timeToCompareWith) const
Compares this time with other.
void addSeconds(int32_t seconds)
Adds seconds to this time.
bool operator!=(const Time &timeToCompareWith) const
Compares this time with other.
uint32_t secondsSinceStartOfDay() const
Returns the seconds since start of the day.
bool operator>(const Time &timeToCompareWith) const
Compares this time with other.
uint8_t second() const
Returns the seconds from system clock or static value.
bool operator==(const Time &timeToCompareWith) const
Compares this time with other.
void addMinutes(int32_t minutes)
Adds minutes to this time.
uint8_t minute() const
Returns the minutes.
void addHours(int32_t hours)
Adds hours to this time.
Time & operator=(const Time &timeToSet)
Copies the time.
uint8_t hour() const
Returns the hours.