AceTime
1.6
Date and time classes for Arduino that support timezones from the TZ Database, and a system clock that can synchronize from an NTP server or an RTC chip.
|
Represents a period of time relative to some known point in time, potentially represented by a DateTime. More...
#include <TimePeriod.h>
Public Member Functions | |
TimePeriod (uint8_t hour, uint8_t minute, uint8_t second, int8_t sign=1) | |
Constructor. More... | |
TimePeriod (int32_t seconds=0) | |
Constructor from number of seconds. More... | |
uint8_t | hour () const |
Return the hour. | |
void | hour (uint8_t hour) |
Set the hour. More... | |
uint8_t | minute () const |
Return the minute. | |
void | minute (uint8_t minute) |
Set the minute. More... | |
uint8_t | second () const |
Return the second. | |
void | second (uint8_t second) |
Set the second. More... | |
int8_t | sign () const |
Return the sign bit. | |
void | sign (int8_t sign) |
Set the sign bit. More... | |
int32_t | toSeconds () const |
Convert to number of seconds. More... | |
bool | isError () const |
Return true if this represents an error. | |
int8_t | compareTo (const TimePeriod &that) const |
Compare 'this' TimePeriod with 'that' TimePeriod and return (<0, 0, >0) according to (this<that, this==that, this>that). More... | |
void | printTo (Print &printer) const |
Print to given printer. More... | |
TimePeriod (const TimePeriod &)=default | |
TimePeriod & | operator= (const TimePeriod &)=default |
Static Public Member Functions | |
static TimePeriod | forError () |
Factory method that creates a TimePeriod representing an error so that isError() returns true. | |
Static Public Attributes | |
static const int32_t | kInvalidPeriodSeconds = INT32_MIN |
An invalid time period seconds. | |
static const int32_t | kMaxPeriodSeconds = 921599 |
The largest period that can be represented by this class, in seconds. More... | |
Friends | |
bool | operator== (const TimePeriod &a, const TimePeriod &b) |
Return true if two TimePeriod objects are equal. More... | |
Represents a period of time relative to some known point in time, potentially represented by a DateTime.
Each component (hour, minute, second) is stored as an unsigned byte (uint8_t). The sign bit allows forward and backward time periods to be represented.
Definition at line 21 of file TimePeriod.h.
|
inlineexplicit |
Constructor.
hour | hour (0-255) |
minute | minute (0-59) |
second | second (0-59) |
sign | The sign bit. Should be either +1 or -1. Any other value may cause the isError() method to return true. |
Definition at line 49 of file TimePeriod.h.
|
inlineexplicit |
Constructor from number of seconds.
The largest valid 'seconds' is +/- 921599 corresponding to (hour=255, minute=59, second=59). For larger number or smaller number, an error object will be returned whose isError() returns true.
seconds | number of seconds (default 0) |
Definition at line 64 of file TimePeriod.h.
|
inline |
Compare 'this' TimePeriod with 'that' TimePeriod and return (<0, 0, >0) according to (this<that, this==that, this>that).
If either 'this' or 'that' returns true for isError(), then the result is undefined.
Definition at line 135 of file TimePeriod.h.
|
inline |
Set the hour.
Should be between [0, 255]. No error checking is done.
Definition at line 88 of file TimePeriod.h.
|
inline |
Set the minute.
Should be between [0, 59]. No error checking is done.
Definition at line 94 of file TimePeriod.h.
void ace_time::TimePeriod::printTo | ( | Print & | printer | ) | const |
Print to given printer.
If the time period is negative, a minus sign is prepended. If the TimePeriod is an error, the string "<Invalid TimePeriod>" is printed.
This class does not implement the Printable interface to avoid increasing the size of the object from the additional virtual function.
Definition at line 14 of file TimePeriod.cpp.
|
inline |
Set the second.
Should be between [0, 59]. No error checking is done.
Definition at line 100 of file TimePeriod.h.
|
inline |
Set the sign bit.
Should be either +1 or -1. Any other value may cause isError() to return true.
Definition at line 109 of file TimePeriod.h.
|
inline |
Convert to number of seconds.
For a normal TimePeriod, the maximum and minimum values are +kMaxPeriodSeconds or -kMaxPeriodSeconds. If isError() is true, this returns kInvalidPeriodSeconds.
Definition at line 116 of file TimePeriod.h.
|
friend |
Return true if two TimePeriod objects are equal.
Optimized for small changes in the less signficant fields.
Definition at line 182 of file TimePeriod.h.
|
static |
The largest period that can be represented by this class, in seconds.
The same limit applies in the positive and negative direction.
Definition at line 30 of file TimePeriod.h.