Ersa Wearable Platform
Embedded smartwatch firmware and application framework
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
ersa::common::CalendarTime Class Reference

#include <calendar_time.h>

Public Member Functions

constexpr CalendarTime ()=default
 
constexpr CalendarTime (uint16_t y, uint8_t m, uint8_t d, uint8_t h, uint8_t min, uint8_t s)
 
 CalendarTime (uint32_t epoch)
 
 CalendarTime (const char *date, const char *time)
 
constexpr uint16_t year () const
 
constexpr uint8_t month () const
 
constexpr uint8_t day () const
 
constexpr uint8_t hour () const
 
constexpr uint8_t minute () const
 
constexpr uint8_t second () const
 
constexpr bool isValid () const
 
uint8_t dayOfTheWeek () const
 
uint32_t unixtime () const
 

Private Member Functions

int64_t daysSinceEpoch () const
 
void fromEpoch (uint32_t epoch)
 
void fromBuildStrings (const char *date, const char *time)
 

Static Private Member Functions

static constexpr bool leap (uint16_t y)
 
static constexpr uint8_t daysInMonth (uint16_t y, uint8_t m)
 

Private Attributes

uint16_t year_ {0}
 
uint8_t month_ {0}
 
uint8_t day_ {0}
 
uint8_t hour_ {0}
 
uint8_t minute_ {0}
 
uint8_t second_ {0}
 

Detailed Description

Small Gregorian calendar value used by apps without a third-party date library.

Constructor & Destructor Documentation

◆ CalendarTime() [1/4]

constexpr ersa::common::CalendarTime::CalendarTime ( )
constexprdefault

Construct an invalid zero value.

◆ CalendarTime() [2/4]

constexpr ersa::common::CalendarTime::CalendarTime ( uint16_t  y,
uint8_t  m,
uint8_t  d,
uint8_t  h,
uint8_t  min,
uint8_t  s 
)
inlineconstexpr

Construct from calendar fields.

◆ CalendarTime() [3/4]

ersa::common::CalendarTime::CalendarTime ( uint32_t  epoch)
inlineexplicit

Construct from Unix seconds.

◆ CalendarTime() [4/4]

ersa::common::CalendarTime::CalendarTime ( const char *  date,
const char *  time 
)
inline

Construct from the compiler's __DATE__ and __TIME__ strings.

Member Function Documentation

◆ day()

constexpr uint8_t ersa::common::CalendarTime::day ( ) const
inlineconstexpr

◆ dayOfTheWeek()

uint8_t ersa::common::CalendarTime::dayOfTheWeek ( ) const

Return Sunday=0 through Saturday=6. Return the weekday using Sunday=0 through Saturday=6.

◆ daysInMonth()

static constexpr uint8_t ersa::common::CalendarTime::daysInMonth ( uint16_t  y,
uint8_t  m 
)
inlinestaticconstexprprivate

◆ daysSinceEpoch()

int64_t ersa::common::CalendarTime::daysSinceEpoch ( ) const
private

◆ fromBuildStrings()

void ersa::common::CalendarTime::fromBuildStrings ( const char *  date,
const char *  time 
)
inlineprivate

◆ fromEpoch()

void ersa::common::CalendarTime::fromEpoch ( uint32_t  epoch)
inlineprivate

◆ hour()

constexpr uint8_t ersa::common::CalendarTime::hour ( ) const
inlineconstexpr

◆ isValid()

constexpr bool ersa::common::CalendarTime::isValid ( ) const
inlineconstexpr

◆ leap()

static constexpr bool ersa::common::CalendarTime::leap ( uint16_t  y)
inlinestaticconstexprprivate

◆ minute()

constexpr uint8_t ersa::common::CalendarTime::minute ( ) const
inlineconstexpr

◆ month()

constexpr uint8_t ersa::common::CalendarTime::month ( ) const
inlineconstexpr

◆ second()

constexpr uint8_t ersa::common::CalendarTime::second ( ) const
inlineconstexpr

◆ unixtime()

uint32_t ersa::common::CalendarTime::unixtime ( ) const

Convert valid calendar fields to Unix seconds; invalid values return zero. Convert a valid calendar value to Unix seconds; invalid values return zero.

◆ year()

constexpr uint16_t ersa::common::CalendarTime::year ( ) const
inlineconstexpr

Member Data Documentation

◆ day_

uint8_t ersa::common::CalendarTime::day_ {0}
private

◆ hour_

uint8_t ersa::common::CalendarTime::hour_ {0}
private

◆ minute_

uint8_t ersa::common::CalendarTime::minute_ {0}
private

◆ month_

uint8_t ersa::common::CalendarTime::month_ {0}
private

◆ second_

uint8_t ersa::common::CalendarTime::second_ {0}
private

◆ year_

uint16_t ersa::common::CalendarTime::year_ {0}
private

The documentation for this class was generated from the following files: