6 #ifndef ACE_TIME_TIME_OFFSET_H 7 #define ACE_TIME_TIME_OFFSET_H 22 namespace time_offset_mutation {
23 void incrementHour(TimeOffset& offset);
24 void increment15Minutes(TimeOffset& offset);
64 static const int8_t kErrorCode = INT8_MIN;
67 static const int16_t kErrorMinutes = INT16_MIN;
86 int16_t minutes = hour * 60 + minute;
100 static TimeOffset forOffsetString(
const char* offsetString);
110 static TimeOffset forOffsetStringChainable(
const char*& offsetString);
122 (offsetCode == kErrorCode) ? kErrorMinutes : offsetCode * 15);
138 return (int32_t) 60 * toMinutes();
147 hour = mMinutes / 60;
148 minute = mMinutes % 60;
156 bool isZero()
const {
return mMinutes == 0; }
160 return mMinutes == kErrorMinutes;
164 void printTo(Print& printer)
const;
174 friend void time_offset_mutation::incrementHour(
TimeOffset& offset);
175 friend void time_offset_mutation::increment15Minutes(
TimeOffset& offset);
178 static const uint8_t kTimeOffsetStringLength = 6;
185 void setMinutes(int16_t minutes) {
195 int16_t mMinutes = 0;
199 return a.mMinutes == b.mMinutes;
static TimeOffset forError()
Return an error indicator.
bool isError() const
Return true if this TimeOffset represents an error.
int32_t toSeconds() const
Return the time offset as seconds.
int16_t toMinutes() const
Return the time offset as minutes.
static TimeOffset forOffsetCode(int8_t offsetCode)
Create TimeOffset from the offset code.
static TimeOffset forHourMinute(int8_t hour, int8_t minute)
Create TimeOffset from (hour, minute) offset.
A thin wrapper that represents a time offset from a reference point, usually 00:00 at UTC...
static TimeOffset forMinutes(int16_t minutes)
Create TimeOffset from minutes from 00:00.
bool isZero() const
Returns true if offset is 00:00.
int8_t toOffsetCode() const
Return the time offset as the number of 15 minute increments.
void toHourMinute(int8_t &hour, int8_t &minute) const
Extract hour and minute representation of the offset.
static TimeOffset forHours(int8_t hour)
Create TimeOffset with the corresponding hour offset.