modm API documentation
modm::DateTime Class Reference

#include <modm/math/calendar/date_time.hpp>

Public Typedefs

using duration = std::chrono::milliseconds
 
using precision = typename duration::period
 

Public Member Functions

constexpr DateTime (uint16_t year, uint8_t month, uint8_t day, uint8_t hour=0, uint8_t minute=0, uint8_t second=0, uint16_t millisecond=0, uint8_t weekday=0)
 This is an efficient conversion.
 
constexpr DateTime (const std::chrono::year_month_day &ymd, const std::chrono::hours &hours=std::chrono::hours::zero (), const std::chrono::minutes &minutes=std::chrono::minutes::zero (), const std::chrono::seconds &seconds=std::chrono::seconds::zero (), const std::chrono::milliseconds &subseconds=std::chrono::milliseconds::zero ())
 This computes the weekday from the date, which is somewhat expensive.
 
constexpr std::chrono::year year () const
 
constexpr std::chrono::month month () const
 
constexpr std::chrono::day day () const
 
constexpr std::chrono::year_month_day year_month_day () const
 This is an efficient conversion.
 
constexpr std::chrono::weekday weekday () const
 
constexpr std::chrono::days day_of_year () const
 
constexpr std::chrono::hours hours () const
 
constexpr std::chrono::minutes minutes () const
 
constexpr std::chrono::seconds seconds () const
 
constexpr std::chrono::milliseconds subseconds () const
 
constexpr std::chrono::hh_mm_ss< duration > hh_mm_ss () const
 
constexpr std::tm tm () const
 This is an efficient conversion.
 
constexpr std::time_t time_t () const
 
constexpr struct timeval timeval () const
 
constexpr duration time_since_epoch () const
 
constexpr auto operator<=> (const DateTime &other) const
 
constexpr auto operator== (const DateTime &other) const
 

Static Public Member Functions

static constexpr DateTime from_tm (const std::tm &tm)
 Efficient conversion.
 
static constexpr DateTime from_time_t (std::time_t tt, const std::chrono::milliseconds &subseconds=std::chrono::milliseconds::zero ())
 Really expensive conversion!
 
static constexpr DateTime from_timeval (const struct timeval &tv)
 Really expensive conversion!
 
static consteval DateTime fromBuildTime ()
 

Detailed Description

Efficient representation of a date and time

Member Function Documentation

constexpr std::chrono::hh_mm_ss<duration> modm::DateTime::hh_mm_ss ( ) const
inlineconstexpr
Warning
This function is very inefficient due to an unnecessary conversion from hh:mm:ss.ms to ms then back to hh:mm:ss.ms in the constructor. This is a limitation of the stdc++ constructor.
constexpr duration modm::DateTime::time_since_epoch ( ) const
inlineconstexpr
Warning
This function is inefficient since it always converts the datetime to milliseconds.
constexpr std::time_t modm::DateTime::time_t ( ) const
inlineconstexpr
Warning
This function is inefficient since it always converts the datetime to seconds.
constexpr struct timeval modm::DateTime::timeval ( ) const
inline
Warning
This function is inefficient since it always converts the datetime to microseconds.

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