semf
time.h
Go to the documentation of this file.
1
10#ifndef SEMF_UTILS_SYSTEM_TIME_H_
11#define SEMF_UTILS_SYSTEM_TIME_H_
12
13#include <cstdint>
14#include <cstddef>
15
16namespace semf
17{
36class Time
37{
38public:
39 Time() = default;
45 Time(const Time& timeToSet);
53 Time(uint16_t millisecond, uint8_t second, uint8_t minute, uint8_t hour);
54 virtual ~Time() = default;
55
65 bool setTime(uint16_t millisecond, uint8_t second, uint8_t minute, uint8_t hour);
70 uint16_t millisecond() const;
76 bool setMillisecond(uint16_t millisecond);
81 uint8_t second() const;
87 bool setSecond(uint8_t second);
92 uint8_t minute() const;
98 bool setMinute(uint8_t minute);
103 uint8_t hour() const;
109 bool setHour(uint8_t hour);
114 void addMilliseconds(int32_t milliseconds);
119 void addSeconds(int32_t seconds);
124 void addMinutes(int32_t minutes);
129 void addHours(int32_t hours);
134 uint32_t secondsSinceStartOfDay() const;
139 uint32_t millisecondsSinceStartOfDay() const;
145 int32_t timeSpan(const Time& subtract) const;
152 Time& operator=(const Time& timeToSet);
158 bool operator==(const Time& timeToCompareWith) const;
164 bool operator!=(const Time& timeToCompareWith) const;
170 bool operator<(const Time& timeToCompareWith) const;
176 bool operator<=(const Time& timeToCompareWith) const;
182 bool operator>(const Time& timeToCompareWith) const;
188 bool operator>=(const Time& timeToCompareWith) const;
189
190protected:
199 static bool isValid(uint16_t millisecond, uint8_t second, uint8_t minute, uint8_t hour);
200
201private:
203 uint16_t m_millisecond = 0;
205 uint8_t m_second = 0;
207 uint8_t m_minute = 0;
209 uint8_t m_hour = 0;
210};
211} /* namespace semf */
212#endif /* SEMF_UTILS_SYSTEM_TIME_H_ */
The Time class provides clock time functions.
Definition: time.h:37
bool setMinute(uint8_t minute)
Sets the minutes.
Definition: time.cpp:88
uint16_t millisecond() const
Returns the milliseconds from system clock or static value.
Definition: time.cpp:43
int32_t timeSpan(const Time &subtract) const
Returns a time difference between this time and subtract.
Definition: time.cpp:234
static bool isValid(uint16_t millisecond, uint8_t second, uint8_t minute, uint8_t hour)
Returns if the given time is valid.
Definition: time.cpp:300
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.
Definition: time.cpp:25
bool operator<=(const Time &timeToCompareWith) const
Compares this time with other.
Definition: time.cpp:278
bool operator<(const Time &timeToCompareWith) const
Compares this time with other.
Definition: time.cpp:263
bool setMillisecond(uint16_t millisecond)
Sets the milliseconds.
Definition: time.cpp:48
uint32_t millisecondsSinceStartOfDay() const
Returns the milliseconds since start of the day.
Definition: time.cpp:229
bool setSecond(uint8_t second)
Sets the seconds.
Definition: time.cpp:68
void addMilliseconds(int32_t milliseconds)
Adds milliseconds to this time.
Definition: time.cpp:123
virtual ~Time()=default
bool setHour(uint8_t hour)
Sets the hours.
Definition: time.cpp:108
bool operator>=(const Time &timeToCompareWith) const
Compares this time with other.
Definition: time.cpp:295
void addSeconds(int32_t seconds)
Adds seconds to this time.
Definition: time.cpp:150
bool operator!=(const Time &timeToCompareWith) const
Compares this time with other.
Definition: time.cpp:258
uint32_t secondsSinceStartOfDay() const
Returns the seconds since start of the day.
Definition: time.cpp:224
Time()=default
bool operator>(const Time &timeToCompareWith) const
Compares this time with other.
Definition: time.cpp:290
uint8_t second() const
Returns the seconds from system clock or static value.
Definition: time.cpp:63
bool operator==(const Time &timeToCompareWith) const
Compares this time with other.
Definition: time.cpp:245
void addMinutes(int32_t minutes)
Adds minutes to this time.
Definition: time.cpp:177
uint8_t minute() const
Returns the minutes.
Definition: time.cpp:83
void addHours(int32_t hours)
Adds hours to this time.
Definition: time.cpp:204
Time & operator=(const Time &timeToSet)
Copies the time.
Definition: time.cpp:239
uint8_t hour() const
Returns the hours.
Definition: time.cpp:103