26ML_UTILS_START_NAMESPACE
165 DateTime(
const char* dtString,
const char* format =
nullptr);
185 [[nodiscard]]
bool set(
const char *dtString,
const char *format =
nullptr);
205 void get(
char *dtString,
const char *format =
nullptr)
const;
303 std::optional<DateTimeIntType> _ldays;
304 std::optional<DateTimeFloatType> _lseconds;
307ML_UTILS_END_NAMESPACE
320 inline ostream&
operator<<(ostream& s,
const ML_UTILS_NAMESPACE::DateTime &dt)
322 s << dt.year() <<
":"
326 << dt.minute() <<
":"
Class for performing date/time arithmetic, comparisons and formatting.
DateTimeIntType day() const
DateTimeIntType daysOfMonth() const
void getHMS(DateTimeIntType *hourV, DateTimeIntType *minuteV, DateTimeFloatType *secondV) const
DateTimeFloatType daysSince(const DateTime &dateTime) const
bool setHMS(DateTimeIntType hourV, DateTimeIntType minuteV, DateTimeFloatType secondV)
bool operator!=(const DateTime &dt) const
DateTime(const char *dtString, const char *format=nullptr)
MLdouble DateTimeFloatType
Specify data type for seconds and fractions of other time units.
bool setYMD(DateTimeIntType yearV, DateTimeIntType monthV, DateTimeIntType dayV)
DateTime(DateTimeIntType linearDaysV, DateTimeFloatType linearSecondsV)
bool operator>=(const DateTime &dt) const
DateTimeIntType linearDays() const
void get(DateTimeIntType *yearV, DateTimeIntType *monthV, DateTimeIntType *dayV, DateTimeIntType *hourV=nullptr, DateTimeIntType *minuteV=nullptr, DateTimeFloatType *secondV=nullptr) const
void get(char *dtString, const char *format=nullptr) const
DateTime(DateTime &&)=default
DateTime(const DateTime &)=default
DateTimeFloatType linearSeconds() const
DateTimeIntType year() const
bool set(DateTimeIntType yearV, DateTimeIntType monthV, DateTimeIntType dayV, DateTimeIntType hourV=0, DateTimeIntType minuteV=0, DateTimeFloatType secondV=0)
static bool isLeapYear(DateTimeIntType yearV)
static DateTimeIntType daysOfYear(DateTimeIntType yearV)
void addDays(DateTimeFloatType daysV)
MLint32 DateTimeIntType
Specify data type for year, month, day, hour and minute type as MLint32.
DateTimeIntType month() const
bool set(const char *dtString, const char *format=nullptr)
DateTimeIntType minute() const
DateTime & operator=(DateTime &&)=default
static DateTimeIntType daysOfMonth(DateTimeIntType monthV, DateTimeIntType yearV)
static bool validYMD(DateTimeIntType yearV, DateTimeIntType monthV, DateTimeIntType dayV)
bool operator<=(const DateTime &dt) const
void getYMD(DateTimeIntType *yearV, DateTimeIntType *monthV, DateTimeIntType *dayV) const
DateTimeIntType hour() const
bool set(DateTimeIntType linDaysV, DateTimeFloatType linSecondsV)
DateTimeIntType daysOfYear() const
DateTimeFloatType secondsSince(const DateTime &dateTime) const
void addSeconds(DateTimeFloatType secondsV)
bool operator==(const DateTime &dt) const
DateTimeIntType dayInYear() const
void addDays(DateTimeIntType daysV)
DateTime & operator=(const DateTime &)=default
DateTimeFloatType second() const
static bool validHMS(DateTimeIntType hourV, DateTimeIntType minuteV, DateTimeFloatType secondV)
DateTime(DateTimeIntType yearV, DateTimeIntType monthV, DateTimeIntType dayV, DateTimeIntType hourV=0, DateTimeIntType minuteV=0, DateTimeFloatType secondV=0)
#define ML_UTILS_EXPORT
Defines platform dependent DLL export macro for mlUtils.
MLEXPORT std::ostream & operator<<(std::ostream &s, const ml::Field &v)
Overloads the operator "<<" for stream output of Field objects.