Time Shield Library
C++ library for working with time
Loading...
Searching...
No Matches
Time Parsing

A comprehensive set of functions for parsing and converting date and time strings. More...

Namespaces

namespace  time_shield::detail
 

Functions

bool time_shield::try_parse_month (const std::string &month, int &value)
 Try parse month name token into month index [1..12].
 
int time_shield::parse_month (const std::string &month)
 Parse month name token into month index [1..12].
 
bool time_shield::try_parse_month (std::string_view month, int &value)
 Try parse month name token into month index [1..12], string_view overload.
 
int time_shield::parse_month (std::string_view month)
 Parse month name token into month index [1..12], string_view overload.
 
template<class T = Month>
time_shield::parse_month_enum (const std::string &month)
 Parse month name token into Month enum (throwing).
 
template<class T = Month>
bool time_shield::try_parse_month_enum (const std::string &month, T &value)
 Try parse month name token into Month enum (or any T).
 
template<class T = Month>
time_shield::parse_month_enum (std::string_view month)
 Parse month name token into Month enum (throwing), string_view overload.
 
template<class T = Month>
bool time_shield::try_parse_month_enum (std::string_view month, T &value)
 Try parse month name token into Month enum (or any T), string_view overload.
 
bool time_shield::try_get_month_index (const std::string &month, int &value)
 Try parse month name token into month index [1..12].
 
int time_shield::get_month_index (const std::string &month)
 Parse month name token into month index [1..12].
 
Month time_shield::get_month_index_enum (const std::string &month)
 Parse month name token into Month enum.
 
bool time_shield::try_get_month_index (std::string_view month, int &value)
 Try parse month name token into month index [1..12], string_view overload.
 
int time_shield::get_month_index (std::string_view month)
 Parse month name token into month index [1..12], string_view overload.
 
Month time_shield::get_month_index_enum (std::string_view month)
 Parse month name token into Month enum, string_view overload.
 
template<class T = Month>
time_shield::get_month_number (const std::string &month)
 Get the month number by name (throwing).
 
template<class T = Month>
time_shield::month_of_year (const std::string &month)
 Alias for get_month_number (throwing).
 
template<class T = Month>
bool time_shield::try_get_month_number (const std::string &month, T &value)
 Try get the month number by name, with output parameter.
 
template<class T = Month>
bool time_shield::get_month_number (const std::string &month, T &value)
 Alias for try_get_month_number (output parameter).
 
template<class T = Month>
bool time_shield::month_of_year (const std::string &month, T &value)
 Alias for try_get_month_number (output parameter).
 
template<class T = Month>
time_shield::get_month_number (std::string_view month)
 Get the month number by name (throwing), string_view overload.
 
template<class T = Month>
time_shield::month_of_year (std::string_view month)
 Alias for get_month_number (throwing), string_view overload.
 
template<class T = Month>
bool time_shield::try_get_month_number (std::string_view month, T &value)
 Try get the month number by name, string_view overload.
 
template<class T = Month>
bool time_shield::get_month_number (std::string_view month, T &value)
 Alias for try_get_month_number, string_view overload.
 
template<class T = Month>
bool time_shield::month_of_year (std::string_view month, T &value)
 Alias for try_get_month_number, string_view overload.
 
template<class T = Month>
time_shield::get_month_number (const char *month)
 Get the month number by name (throwing), const char* overload.
 
template<class T = Month>
bool time_shield::try_get_month_number (const char *month, T &value)
 Try get the month number by name, const char* overload.
 
template<class T = Month>
time_shield::month_of_year (const char *month)
 Alias for get_month_number (throwing), const char* overload.
 
template<class T = Month>
bool time_shield::get_month_number (const char *month, T &value)
 Alias for try_get_month_number (output parameter), const char* overload.
 
template<class T = Month>
bool time_shield::month_of_year (const char *month, T &value)
 Alias for try_get_month_number (output parameter), const char* overload.
 
bool time_shield::parse_time_zone (const char *data, std::size_t length, TimeZoneStruct &tz) noexcept
 Parse timezone character buffer into TimeZoneStruct.
 
bool time_shield::parse_time_zone (const std::string &tz_str, TimeZoneStruct &tz) noexcept
 Parse timezone string into TimeZoneStruct.
 
bool time_shield::parse_tz (const std::string &tz_str, TimeZoneStruct &tz) noexcept
 Alias for parse_time_zone.
 
bool time_shield::parse_tz (const char *data, std::size_t length, TimeZoneStruct &tz) noexcept
 Alias for parse_time_zone (buffer overload).
 
bool time_shield::parse_iso8601 (const char *input, std::size_t length, DateTimeStruct &dt, TimeZoneStruct &tz) noexcept
 Parse ISO8601 character buffer into DateTimeStruct and TimeZoneStruct.
 
bool time_shield::parse_iso8601 (const std::string &input, DateTimeStruct &dt, TimeZoneStruct &tz) noexcept
 Parse ISO8601 string into DateTimeStruct and TimeZoneStruct.
 
bool time_shield::str_to_ts (const std::string &str, ts_t &ts)
 Convert an ISO8601 string to a timestamp (ts_t).
 
bool time_shield::str_to_ts (const char *data, std::size_t length, ts_t &ts)
 Parse ISO8601 character buffer and convert to timestamp (seconds).
 
bool time_shield::str_to_ts_ms (const std::string &str, ts_ms_t &ts)
 Convert an ISO8601 string to a millisecond timestamp (ts_ms_t).
 
bool time_shield::str_to_ts_ms (const char *data, std::size_t length, ts_ms_t &ts)
 Convert ISO8601 character buffer to millisecond timestamp (ts_ms_t).
 
bool time_shield::str_to_fts (const std::string &str, fts_t &ts)
 Convert an ISO8601 string to a floating-point timestamp (fts_t).
 
bool time_shield::str_to_fts (const char *data, std::size_t length, fts_t &ts)
 Convert ISO8601 character buffer to floating-point timestamp (fts_t).
 
bool time_shield::is_workday (const std::string &str)
 Parse ISO8601 string and check if it falls on a workday (seconds precision).
 
bool time_shield::is_workday_ms (const std::string &str)
 Parse ISO8601 string and check if it falls on a workday (milliseconds precision).
 
bool time_shield::workday (const std::string &str)
 Alias for is_workday(const std::string&).
 
bool time_shield::workday_ms (const std::string &str)
 Alias for is_workday_ms(const std::string&).
 
bool time_shield::is_first_workday_of_month (const std::string &str)
 Parse ISO8601 string and check if it is the first workday of its month (seconds).
 
bool time_shield::is_first_workday_of_month_ms (const std::string &str)
 Parse an ISO8601 string and check if it is the first workday of its month (millisecond precision).
 
bool time_shield::is_last_workday_of_month (const std::string &str)
 Parse an ISO8601 string and check if it is the last workday of its month (seconds).
 
bool time_shield::is_last_workday_of_month_ms (const std::string &str)
 Parse an ISO8601 string and check if it is the last workday of its month (millisecond).
 
bool time_shield::is_within_first_workdays_of_month (const std::string &str, int count)
 Parse an ISO8601 string and check if it falls within the first N workdays of its month.
 
bool time_shield::is_within_first_workdays_of_month_ms (const std::string &str, int count)
 Parse an ISO8601 string and check if it falls within the first N workdays of its month (millisecond precision).
 
bool time_shield::is_within_last_workdays_of_month (const std::string &str, int count)
 Parse ISO8601 string and check if it is within last N workdays of its month (seconds).
 
bool time_shield::is_within_last_workdays_of_month_ms (const std::string &str, int count)
 Parse ISO8601 string and check if it is within last N workdays of its month (milliseconds).
 
ts_t time_shield::ts (const char *str)
 Convert ISO8601 C-string to timestamp (seconds).
 
ts_t time_shield::ts (const char *data, std::size_t length)
 Convert ISO8601 character buffer to timestamp (seconds).
 
ts_ms_t time_shield::ts_ms (const char *str)
 Convert ISO8601 C-string to timestamp (milliseconds).
 
ts_ms_t time_shield::ts_ms (const char *data, std::size_t length)
 Convert ISO8601 character buffer to timestamp (milliseconds).
 
fts_t time_shield::fts (const char *str)
 Convert ISO8601 C-string to floating timestamp (seconds).
 
fts_t time_shield::fts (const char *data, std::size_t length)
 Convert ISO8601 character buffer to floating timestamp (seconds).
 
ts_t time_shield::ts (const std::string &str)
 Convert an ISO8601 string to a timestamp (ts_t).
 
ts_ms_t time_shield::ts_ms (const std::string &str)
 Convert an ISO8601 string to a millisecond timestamp (ts_ms_t).
 
fts_t time_shield::fts (const std::string &str)
 Convert an ISO8601 string to a floating-point timestamp (fts_t).
 
template<class T = int>
bool time_shield::sec_of_day (const std::string &str, T &sec)
 Parse time of day string to seconds of day.
 
template<class T = int>
time_shield::sec_of_day (const std::string &str)
 Convert time of day string to seconds of day.
 
int time_shield::get_month_number (string month)
 Get the month number by name.
 
int time_shield::month_of_year (string month)
 Alias for get_month_number function.
 
bool time_shield::try_get_month_number (string month, int &value)
 Get the month number by name, with output parameter.
 
bool time_shield::get_month_number (string month, int &value)
 Alias for try_get_month_number function.
 
bool time_shield::month_of_year (string month, int &value)
 Alias for try_get_month_number function.
 
bool time_shield::parse_time_zone (string tz_str, TimeZoneStruct &tz)
 Parse a time zone string into a TimeZoneStruct.
 
bool time_shield::parse_tz (string tz_str, TimeZoneStruct &tz)
 Alias for parse_time_zone function.
 
bool time_shield::parse_iso8601 (string input_str, DateTimeStruct &dt, TimeZoneStruct &tz)
 Parse a date and time string in ISO8601 format.
 
bool time_shield::str_to_ts (string str, long &ts)
 Convert an ISO8601 string to a timestamp (ts_t).
 
bool time_shield::str_to_ts_ms (string str, long &ts)
 Convert an ISO8601 string to a millisecond timestamp (ts_ms_t).
 
bool time_shield::is_workday (string str)
 Parse ISO8601 string and check for workday using second precision.
 
bool time_shield::workday (string str)
 Alias for is_workday.
 
bool time_shield::is_workday_ms (string str)
 Parse ISO8601 string and check for workday using millisecond precision.
 
bool time_shield::workday_ms (string str)
 Alias for is_workday_ms.
 
bool time_shield::is_first_workday_of_month (string str)
 Parse ISO8601 string and check for the first workday of the month using second precision.
 
bool time_shield::is_first_workday_of_month_ms (string str)
 Parse ISO8601 string and check for the first workday of the month using millisecond precision.
 
bool time_shield::is_within_first_workdays_of_month (string str, int count)
 Parse ISO8601 string and check if it falls within the first N workdays of the month using second precision.
 
bool time_shield::is_within_first_workdays_of_month_ms (string str, int count)
 Parse ISO8601 string and check if it falls within the first N workdays of the month using millisecond precision.
 
bool time_shield::is_last_workday_of_month (string str)
 Parse ISO8601 string and check for the last workday of the month using second precision.
 
bool time_shield::is_last_workday_of_month_ms (string str)
 Parse ISO8601 string and check for the last workday of the month using millisecond precision.
 
bool time_shield::is_within_last_workdays_of_month (string str, int count)
 Parse ISO8601 string and check if it falls within the last N workdays of the month using second precision.
 
bool time_shield::is_within_last_workdays_of_month_ms (string str, int count)
 Parse ISO8601 string and check if it falls within the last N workdays of the month using millisecond precision.
 
long time_shield::start_of_first_workday_month (string str)
 Parse ISO8601 string and return start of the first workday of that month in seconds.
 
long time_shield::start_of_first_workday_month_ms (string str)
 Parse ISO8601 string and return start of the first workday of that month in milliseconds.
 
long time_shield::end_of_first_workday_month (string str)
 Parse ISO8601 string and return end of the first workday of that month in seconds.
 
long time_shield::end_of_first_workday_month_ms (string str)
 Parse ISO8601 string and return end of the first workday of that month in milliseconds.
 
long time_shield::start_of_last_workday_month (string str)
 Parse ISO8601 string and return start of the last workday of that month in seconds.
 
long time_shield::start_of_last_workday_month_ms (string str)
 Parse ISO8601 string and return start of the last workday of that month in milliseconds.
 
long time_shield::end_of_last_workday_month (string str)
 Parse ISO8601 string and return end of the last workday of that month in seconds.
 
long time_shield::end_of_last_workday_month_ms (string str)
 Parse ISO8601 string and return end of the last workday of that month in milliseconds.
 
bool time_shield::str_to_fts (string str, double &ts)
 Convert an ISO8601 string to a floating-point timestamp (fts_t).
 
long time_shield::ts (string str)
 Convert an ISO8601 string to a timestamp (ts_t).
 
long time_shield::ts_ms (string str)
 Convert an ISO8601 string to a millisecond timestamp (ts_ms_t).
 
double time_shield::fts (string str)
 Convert an ISO8601 string to a floating-point timestamp (fts_t).
 
int time_shield::sec_of_day (string str)
 Convert string with time of day to second of day.
 

Detailed Description

A comprehensive set of functions for parsing and converting date and time strings.

This module provides utilities for parsing date and time strings in ISO8601 format, extracting date components, and converting them into various timestamp formats.

Key Features:

Usage Examples:

Function Documentation

◆ end_of_first_workday_month()

long time_shield::end_of_first_workday_month ( string str)

Parse ISO8601 string and return end of the first workday of that month in seconds.

Parameters
strISO8601 formatted string.
Returns
Timestamp at 23:59:59 of the first workday or ERROR_TIMESTAMP on failure.

Definition at line 335 of file time_parser.mqh.

◆ end_of_first_workday_month_ms()

long time_shield::end_of_first_workday_month_ms ( string str)

Parse ISO8601 string and return end of the first workday of that month in milliseconds.

Parameters
strISO8601 formatted string.
Returns
Timestamp at 23:59:59.999 of the first workday or ERROR_TIMESTAMP on failure.

Definition at line 345 of file time_parser.mqh.

◆ end_of_last_workday_month()

long time_shield::end_of_last_workday_month ( string str)

Parse ISO8601 string and return end of the last workday of that month in seconds.

Parameters
strISO8601 formatted string.
Returns
Timestamp at 23:59:59 of the last workday or ERROR_TIMESTAMP on failure.

Definition at line 375 of file time_parser.mqh.

◆ end_of_last_workday_month_ms()

long time_shield::end_of_last_workday_month_ms ( string str)

Parse ISO8601 string and return end of the last workday of that month in milliseconds.

Parameters
strISO8601 formatted string.
Returns
Timestamp at 23:59:59.999 of the last workday or ERROR_TIMESTAMP on failure.

Definition at line 385 of file time_parser.mqh.

◆ fts() [1/4]

fts_t time_shield::fts ( const char * data,
std::size_t length )
inline

Convert ISO8601 character buffer to floating timestamp (seconds).

Does not require null terminator. Returns 0 on failure.

Parameters
dataPointer to character buffer.
lengthNumber of characters in buffer.
Returns
Timestamp in seconds (floating-point), or 0 if parsing fails.

Definition at line 1074 of file time_parser.hpp.

◆ fts() [2/4]

fts_t time_shield::fts ( const char * str)
inline

Convert ISO8601 C-string to floating timestamp (seconds).

Returns 0 on failure.

Parameters
strC-style string with ISO8601 timestamp, may be nullptr.
Returns
Timestamp in seconds (floating-point), or 0 if parsing fails.

Definition at line 1063 of file time_parser.hpp.

◆ fts() [3/4]

fts_t time_shield::fts ( const std::string & str)
inline

Convert an ISO8601 string to a floating-point timestamp (fts_t).

This function parses a string in ISO8601 format and converts it to a floating-point timestamp. If the parsing fails, it returns 0.

Parameters
strThe ISO8601 string.
Returns
The floating-point timestamp if successful, 0 otherwise.

Definition at line 1111 of file time_parser.hpp.

◆ fts() [4/4]

double time_shield::fts ( string str)

Convert an ISO8601 string to a floating-point timestamp (fts_t).

Returns 0.0 if parsing fails.

Parameters
strThe ISO8601 string.
Returns
Floating-point timestamp or 0.0 on error.

Definition at line 427 of file time_parser.mqh.

◆ get_month_index() [1/2]

int time_shield::get_month_index ( const std::string & month)
inline

Parse month name token into month index [1..12].

Parameters
monthMonth token.
Returns
Month index [1..12].
Exceptions
std::invalid_argumentif token is invalid.

Definition at line 400 of file time_parser.hpp.

◆ get_month_index() [2/2]

int time_shield::get_month_index ( std::string_view month)
inline

Parse month name token into month index [1..12], string_view overload.

Definition at line 419 of file time_parser.hpp.

◆ get_month_index_enum() [1/2]

Month time_shield::get_month_index_enum ( const std::string & month)
inline

Parse month name token into Month enum.

Parameters
monthMonth token.
Returns
Month enum value (1..12).
Exceptions
std::invalid_argumentif token is invalid.

Definition at line 408 of file time_parser.hpp.

◆ get_month_index_enum() [2/2]

Month time_shield::get_month_index_enum ( std::string_view month)
inline

Parse month name token into Month enum, string_view overload.

Definition at line 424 of file time_parser.hpp.

◆ get_month_number() [1/8]

template<class T = Month>
T time_shield::get_month_number ( const char * month)
inline

Get the month number by name (throwing), const char* overload.

Template Parameters
TReturn type, default is Month enum.
Parameters
monthMonth token C-string.
Returns
Month number (1..12) converted to T.
Exceptions
std::invalid_argumentif token is invalid.

Definition at line 509 of file time_parser.hpp.

◆ get_month_number() [2/8]

template<class T = Month>
bool time_shield::get_month_number ( const char * month,
T & value )
inline

Alias for try_get_month_number (output parameter), const char* overload.

Definition at line 539 of file time_parser.hpp.

◆ get_month_number() [3/8]

template<class T = Month>
T time_shield::get_month_number ( const std::string & month)
inline

Get the month number by name (throwing).

Template Parameters
TReturn type, default is Month enum.
Parameters
monthMonth token.
Returns
Month number (1..12) converted to T.
Exceptions
std::invalid_argumentif token is invalid.

Definition at line 437 of file time_parser.hpp.

◆ get_month_number() [4/8]

template<class T = Month>
bool time_shield::get_month_number ( const std::string & month,
T & value )
inline

Alias for try_get_month_number (output parameter).

Definition at line 459 of file time_parser.hpp.

◆ get_month_number() [5/8]

template<class T = Month>
T time_shield::get_month_number ( std::string_view month)
inline

Get the month number by name (throwing), string_view overload.

Definition at line 472 of file time_parser.hpp.

◆ get_month_number() [6/8]

template<class T = Month>
bool time_shield::get_month_number ( std::string_view month,
T & value )
inline

Alias for try_get_month_number, string_view overload.

Definition at line 490 of file time_parser.hpp.

◆ get_month_number() [7/8]

int time_shield::get_month_number ( string month)

Get the month number by name.

Parameters
monthThe name of the month as a string.
Returns
The month number corresponding to the given name, or 0 on error.

Definition at line 39 of file time_parser.mqh.

◆ get_month_number() [8/8]

bool time_shield::get_month_number ( string month,
int & value )

Alias for try_get_month_number function.

Try get the month number by name, with output parameter.

Template Parameters
TOutput type, default is Month enum.
Parameters
monthMonth token.
valueOutput month number (1..12) converted to T.
Returns
True if month token is valid, false otherwise.

Definition at line 80 of file time_parser.mqh.

◆ is_first_workday_of_month() [1/2]

bool time_shield::is_first_workday_of_month ( const std::string & str)
inline

Parse ISO8601 string and check if it is the first workday of its month (seconds).

Parameters
strISO8601 formatted string.
Returns
true if parsing succeeds and the timestamp corresponds to the first workday of the month, false otherwise.

Definition at line 935 of file time_parser.hpp.

◆ is_first_workday_of_month() [2/2]

bool time_shield::is_first_workday_of_month ( string str)

Parse ISO8601 string and check for the first workday of the month using second precision.

Parameters
strISO8601 formatted string.
Returns
true when the parsed timestamp is the first workday of its month.

Definition at line 231 of file time_parser.mqh.

◆ is_first_workday_of_month_ms() [1/2]

bool time_shield::is_first_workday_of_month_ms ( const std::string & str)
inline

Parse an ISO8601 string and check if it is the first workday of its month (millisecond precision).

Parameters
strISO8601 formatted string.
Returns
true if parsing succeeds and the timestamp corresponds to the first workday of the month, false otherwise.

Definition at line 944 of file time_parser.hpp.

◆ is_first_workday_of_month_ms() [2/2]

bool time_shield::is_first_workday_of_month_ms ( string str)

Parse ISO8601 string and check for the first workday of the month using millisecond precision.

Parameters
strISO8601 formatted string.
Returns
true when the parsed timestamp is the first workday of its month.

Definition at line 241 of file time_parser.mqh.

◆ is_last_workday_of_month() [1/2]

bool time_shield::is_last_workday_of_month ( const std::string & str)
inline

Parse an ISO8601 string and check if it is the last workday of its month (seconds).

Parameters
strISO8601 formatted string.
Returns
true if parsing succeeds and the timestamp corresponds to the last workday of the month, false otherwise.

Definition at line 953 of file time_parser.hpp.

◆ is_last_workday_of_month() [2/2]

bool time_shield::is_last_workday_of_month ( string str)

Parse ISO8601 string and check for the last workday of the month using second precision.

Parameters
strISO8601 formatted string.
Returns
true when the parsed timestamp is the last workday of its month.

Definition at line 273 of file time_parser.mqh.

◆ is_last_workday_of_month_ms() [1/2]

bool time_shield::is_last_workday_of_month_ms ( const std::string & str)
inline

Parse an ISO8601 string and check if it is the last workday of its month (millisecond).

Parameters
strISO8601 formatted string.
Returns
true if parsing succeeds and the timestamp corresponds to the last workday of the month, false otherwise.

Definition at line 962 of file time_parser.hpp.

◆ is_last_workday_of_month_ms() [2/2]

bool time_shield::is_last_workday_of_month_ms ( string str)

Parse ISO8601 string and check for the last workday of the month using millisecond precision.

Parameters
strISO8601 formatted string.
Returns
true when the parsed timestamp is the last workday of its month.

Definition at line 283 of file time_parser.mqh.

◆ is_within_first_workdays_of_month() [1/2]

bool time_shield::is_within_first_workdays_of_month ( const std::string & str,
int count )
inline

Parse an ISO8601 string and check if it falls within the first N workdays of its month.

Parameters
strISO8601 formatted string.
countNumber of leading workdays to test against.
Returns
true if parsing succeeds and the timestamp corresponds to a workday ranked within the first N positions, false otherwise.

Definition at line 972 of file time_parser.hpp.

◆ is_within_first_workdays_of_month() [2/2]

bool time_shield::is_within_first_workdays_of_month ( string str,
int count )

Parse ISO8601 string and check if it falls within the first N workdays of the month using second precision.

Parameters
strISO8601 formatted string.
countNumber of leading workdays to test.
Returns
true when the parsed timestamp is within the requested range.

Definition at line 252 of file time_parser.mqh.

◆ is_within_first_workdays_of_month_ms() [1/2]

bool time_shield::is_within_first_workdays_of_month_ms ( const std::string & str,
int count )
inline

Parse an ISO8601 string and check if it falls within the first N workdays of its month (millisecond precision).

Parameters
strISO8601 formatted string.
countNumber of leading workdays to test against.
Returns
true if parsing succeeds and the timestamp corresponds to a workday ranked within the first N positions, false otherwise.

Definition at line 982 of file time_parser.hpp.

◆ is_within_first_workdays_of_month_ms() [2/2]

bool time_shield::is_within_first_workdays_of_month_ms ( string str,
int count )

Parse ISO8601 string and check if it falls within the first N workdays of the month using millisecond precision.

Parameters
strISO8601 formatted string.
countNumber of leading workdays to test.
Returns
true when the parsed timestamp is within the requested range.

Definition at line 263 of file time_parser.mqh.

◆ is_within_last_workdays_of_month() [1/2]

bool time_shield::is_within_last_workdays_of_month ( const std::string & str,
int count )
inline

Parse ISO8601 string and check if it is within last N workdays of its month (seconds).

Parameters
strISO8601 formatted string.
countNumber of trailing workdays to test against.
Returns
true if parsing succeeds and the timestamp corresponds to a workday ranked within the final N positions, false otherwise.

Definition at line 992 of file time_parser.hpp.

◆ is_within_last_workdays_of_month() [2/2]

bool time_shield::is_within_last_workdays_of_month ( string str,
int count )

Parse ISO8601 string and check if it falls within the last N workdays of the month using second precision.

Parameters
strISO8601 formatted string.
countNumber of trailing workdays to test.
Returns
true when the parsed timestamp is within the requested range.

Definition at line 294 of file time_parser.mqh.

◆ is_within_last_workdays_of_month_ms() [1/2]

bool time_shield::is_within_last_workdays_of_month_ms ( const std::string & str,
int count )
inline

Parse ISO8601 string and check if it is within last N workdays of its month (milliseconds).

Parameters
strISO8601 formatted string.
countNumber of trailing workdays to test against.
Returns
true if parsing succeeds and the timestamp corresponds to a workday ranked within the final N positions, false otherwise.

Definition at line 1002 of file time_parser.hpp.

◆ is_within_last_workdays_of_month_ms() [2/2]

bool time_shield::is_within_last_workdays_of_month_ms ( string str,
int count )

Parse ISO8601 string and check if it falls within the last N workdays of the month using millisecond precision.

Parameters
strISO8601 formatted string.
countNumber of trailing workdays to test.
Returns
true when the parsed timestamp is within the requested range.

Definition at line 305 of file time_parser.mqh.

◆ is_workday() [1/2]

bool time_shield::is_workday ( const std::string & str)
inline

Parse ISO8601 string and check if it falls on a workday (seconds precision).

Definition at line 907 of file time_parser.hpp.

◆ is_workday() [2/2]

bool time_shield::is_workday ( string str)

Parse ISO8601 string and check for workday using second precision.

Parameters
strISO8601 formatted string.
Returns
true when parsed timestamp is Monday through Friday.

Definition at line 203 of file time_parser.mqh.

◆ is_workday_ms() [1/2]

bool time_shield::is_workday_ms ( const std::string & str)
inline

Parse ISO8601 string and check if it falls on a workday (milliseconds precision).

Definition at line 914 of file time_parser.hpp.

◆ is_workday_ms() [2/2]

bool time_shield::is_workday_ms ( string str)

Parse ISO8601 string and check for workday using millisecond precision.

Parameters
strISO8601 formatted string.
Returns
true when parsed timestamp is Monday through Friday.

Definition at line 217 of file time_parser.mqh.

◆ month_of_year() [1/8]

template<class T = Month>
T time_shield::month_of_year ( const char * month)
inline

Alias for get_month_number (throwing), const char* overload.

Definition at line 533 of file time_parser.hpp.

◆ month_of_year() [2/8]

template<class T = Month>
bool time_shield::month_of_year ( const char * month,
T & value )
inline

Alias for try_get_month_number (output parameter), const char* overload.

Definition at line 545 of file time_parser.hpp.

◆ month_of_year() [3/8]

template<class T = Month>
T time_shield::month_of_year ( const std::string & month)
inline

Alias for get_month_number (throwing).

Definition at line 443 of file time_parser.hpp.

◆ month_of_year() [4/8]

template<class T = Month>
bool time_shield::month_of_year ( const std::string & month,
T & value )
inline

Alias for try_get_month_number (output parameter).

Definition at line 465 of file time_parser.hpp.

◆ month_of_year() [5/8]

template<class T = Month>
T time_shield::month_of_year ( std::string_view month)
inline

Alias for get_month_number (throwing), string_view overload.

Definition at line 478 of file time_parser.hpp.

◆ month_of_year() [6/8]

template<class T = Month>
bool time_shield::month_of_year ( std::string_view month,
T & value )
inline

Alias for try_get_month_number, string_view overload.

Definition at line 496 of file time_parser.hpp.

◆ month_of_year() [7/8]

int time_shield::month_of_year ( string month)

Alias for get_month_number function.

Get the month number by name (throwing).

Template Parameters
TReturn type, default is Month enum.
Parameters
monthMonth token.
Returns
Month number (1..12) converted to T.
Exceptions
std::invalid_argumentif token is invalid.

Definition at line 62 of file time_parser.mqh.

◆ month_of_year() [8/8]

bool time_shield::month_of_year ( string month,
int & value )

Alias for try_get_month_number function.

Try get the month number by name, with output parameter.

Template Parameters
TOutput type, default is Month enum.
Parameters
monthMonth token.
valueOutput month number (1..12) converted to T.
Returns
True if month token is valid, false otherwise.

Definition at line 84 of file time_parser.mqh.

◆ parse_iso8601() [1/3]

bool time_shield::parse_iso8601 ( const char * input,
std::size_t length,
DateTimeStruct & dt,
TimeZoneStruct & tz )
inlinenoexcept

Parse ISO8601 character buffer into DateTimeStruct and TimeZoneStruct.

Supported inputs:

  • "YYYY-MM-DD"
  • "YYYY-MM-DDThh:mm"
  • "YYYY-MM-DDThh:mm:ss"
  • "YYYY-MM-DDThh:mm:ss.fff" (1..9 digits fraction; milliseconds from first 3 digits, scaled if fewer)
  • Any of the above time forms with "Z" or "+HH:MM"/"-HH:MM"
  • Separator between date and time: 'T' or ASCII whitespace.

Date separators supported: '-', '/', '.' (as in original regex).

Parameters
inputPointer to buffer (may be not null-terminated).
lengthBuffer length.
dtOutput DateTimeStruct (filled). On success, dt is always initialized.
tzOutput TimeZoneStruct (filled). If timezone is not present, UTC is used.
Returns
True if parsing succeeds and dt is valid, false otherwise.

Definition at line 640 of file time_parser.hpp.

◆ parse_iso8601() [2/3]

bool time_shield::parse_iso8601 ( const std::string & input,
DateTimeStruct & dt,
TimeZoneStruct & tz )
inlinenoexcept

◆ parse_iso8601() [3/3]

bool time_shield::parse_iso8601 ( string input_str,
DateTimeStruct & dt,
TimeZoneStruct & tz )

Parse a date and time string in ISO8601 format.

Parameters
input_strThe input string in ISO8601 format.
dtThe DateTimeStruct to be filled with parsed values.
tzThe TimeZoneStruct to be filled with parsed time zone.
Returns
True if parsing succeeds and the date and time values are valid, false otherwise.

Definition at line 117 of file time_parser.mqh.

◆ parse_month() [1/2]

int time_shield::parse_month ( const std::string & month)
inline

Parse month name token into month index [1..12].

Parameters
monthMonth token.
Returns
Month index [1..12].
Exceptions
std::invalid_argumentif token is invalid.

Definition at line 314 of file time_parser.hpp.

◆ parse_month() [2/2]

int time_shield::parse_month ( std::string_view month)
inline

Parse month name token into month index [1..12], string_view overload.

Parameters
monthMonth token view.
Returns
Month index [1..12].
Exceptions
std::invalid_argumentif token is invalid.

Definition at line 331 of file time_parser.hpp.

◆ parse_month_enum() [1/2]

template<class T = Month>
T time_shield::parse_month_enum ( const std::string & month)
inline

Parse month name token into Month enum (throwing).

Template Parameters
TReturn type, default is Month enum.
Parameters
monthMonth token.
Returns
Month number (1..12) converted to T.
Exceptions
std::invalid_argumentif token is invalid.

Definition at line 344 of file time_parser.hpp.

◆ parse_month_enum() [2/2]

template<class T = Month>
T time_shield::parse_month_enum ( std::string_view month)
inline

Parse month name token into Month enum (throwing), string_view overload.

Template Parameters
TReturn type, default is Month enum.
Parameters
monthMonth token view.
Returns
Month number (1..12) converted to T.
Exceptions
std::invalid_argumentif token is invalid.

Definition at line 368 of file time_parser.hpp.

◆ parse_time_zone() [1/3]

bool time_shield::parse_time_zone ( const char * data,
std::size_t length,
TimeZoneStruct & tz )
inlinenoexcept

Parse timezone character buffer into TimeZoneStruct.

Supported formats:

  • "" -> UTC (+00:00)
  • "Z" -> UTC (+00:00)
  • "+HH:MM" or "-HH:MM"
    Parameters
    dataPointer to timezone buffer (may be not null-terminated).
    lengthNumber of characters in buffer.
    tzOutput time zone struct.
    Returns
    True if parsing succeeds and tz is valid, false otherwise.

Definition at line 562 of file time_parser.hpp.

◆ parse_time_zone() [2/3]

bool time_shield::parse_time_zone ( const std::string & tz_str,
TimeZoneStruct & tz )
inlinenoexcept

Parse timezone string into TimeZoneStruct.

Wrapper over parse_time_zone(const char*, std::size_t, TimeZoneStruct&).

Definition at line 606 of file time_parser.hpp.

◆ parse_time_zone() [3/3]

bool time_shield::parse_time_zone ( string tz_str,
TimeZoneStruct & tz )

Parse a time zone string into a TimeZoneStruct.

Parses a time zone string in the format "+hh:mm", "-hh:mm" or "Z". If the string is empty or "Z", UTC is assumed.

Parameters
tz_strThe time zone string.
tzThe TimeZoneStruct to be filled.
Returns
True if the parsing is successful and the time zone is valid, false otherwise.

Definition at line 94 of file time_parser.mqh.

◆ parse_tz() [1/3]

bool time_shield::parse_tz ( const char * data,
std::size_t length,
TimeZoneStruct & tz )
inlinenoexcept

Alias for parse_time_zone (buffer overload).

Definition at line 616 of file time_parser.hpp.

◆ parse_tz() [2/3]

bool time_shield::parse_tz ( const std::string & tz_str,
TimeZoneStruct & tz )
inlinenoexcept

Alias for parse_time_zone.

Definition at line 611 of file time_parser.hpp.

◆ parse_tz() [3/3]

bool time_shield::parse_tz ( string tz_str,
TimeZoneStruct & tz )

Alias for parse_time_zone function.

Parse timezone character buffer into TimeZoneStruct.

Supported formats:

  • "" -> UTC (+00:00)
  • "Z" -> UTC (+00:00)
  • "+HH:MM" or "-HH:MM"
    Parameters
    dataPointer to timezone buffer (may be not null-terminated).
    lengthNumber of characters in buffer.
    tzOutput time zone struct.
    Returns
    True if parsing succeeds and tz is valid, false otherwise.

Definition at line 108 of file time_parser.mqh.

◆ sec_of_day() [1/3]

template<class T = int>
T time_shield::sec_of_day ( const std::string & str)
inline

Convert time of day string to seconds of day.

Supported formats:

  • HH:MM:SS
  • HH:MM
  • HH
Template Parameters
TReturn type (default int).
Parameters
strTime of day as string.
Returns
Parsed seconds of day or SEC_PER_DAY if parsing fails.

Definition at line 1180 of file time_parser.hpp.

◆ sec_of_day() [2/3]

template<class T = int>
bool time_shield::sec_of_day ( const std::string & str,
T & sec )
inline

Parse time of day string to seconds of day.

Supported formats:

  • HH:MM:SS
  • HH:MM
  • HH
Template Parameters
TReturn type (default int).
Parameters
strTime of day as string.
secParsed seconds of day on success.
Returns
True on successful parsing.

Definition at line 1131 of file time_parser.hpp.

◆ sec_of_day() [3/3]

int time_shield::sec_of_day ( string str)

Convert string with time of day to second of day.

Supports formats:

  • HH:MM:SS
  • HH:MM
  • HH
    Parameters
    strTime in string format
    Returns
    Second of the day if conversion succeeded, or SEC_PER_DAY if it failed.

Definition at line 443 of file time_parser.mqh.

◆ start_of_first_workday_month()

long time_shield::start_of_first_workday_month ( string str)

Parse ISO8601 string and return start of the first workday of that month in seconds.

Parameters
strISO8601 formatted string.
Returns
Timestamp at 00:00:00 of the first workday or ERROR_TIMESTAMP on failure.

Definition at line 315 of file time_parser.mqh.

◆ start_of_first_workday_month_ms()

long time_shield::start_of_first_workday_month_ms ( string str)

Parse ISO8601 string and return start of the first workday of that month in milliseconds.

Parameters
strISO8601 formatted string.
Returns
Timestamp at 00:00:00.000 of the first workday or ERROR_TIMESTAMP on failure.

Definition at line 325 of file time_parser.mqh.

◆ start_of_last_workday_month()

long time_shield::start_of_last_workday_month ( string str)

Parse ISO8601 string and return start of the last workday of that month in seconds.

Parameters
strISO8601 formatted string.
Returns
Timestamp at 00:00:00 of the last workday or ERROR_TIMESTAMP on failure.

Definition at line 355 of file time_parser.mqh.

◆ start_of_last_workday_month_ms()

long time_shield::start_of_last_workday_month_ms ( string str)

Parse ISO8601 string and return start of the last workday of that month in milliseconds.

Parameters
strISO8601 formatted string.
Returns
Timestamp at 00:00:00.000 of the last workday or ERROR_TIMESTAMP on failure.

Definition at line 365 of file time_parser.mqh.

◆ str_to_fts() [1/3]

bool time_shield::str_to_fts ( const char * data,
std::size_t length,
fts_t & ts )
inline

Convert ISO8601 character buffer to floating-point timestamp (fts_t).

Parameters
dataPointer to character buffer.
lengthNumber of characters in buffer.
tsOutput timestamp in floating-point seconds.
Returns
True if parsing and conversion succeed, false otherwise.

Definition at line 894 of file time_parser.hpp.

◆ str_to_fts() [2/3]

bool time_shield::str_to_fts ( const std::string & str,
fts_t & ts )
inline

Convert an ISO8601 string to a floating-point timestamp (fts_t).

Parameters
strISO8601 string.
tsOutput timestamp (floating-point seconds).
Returns
True if parsing and conversion succeed, false otherwise.

Definition at line 878 of file time_parser.hpp.

◆ str_to_fts() [3/3]

bool time_shield::str_to_fts ( string str,
double & ts )

Convert an ISO8601 string to a floating-point timestamp (fts_t).

Parameters
strThe ISO8601 string.
tsThe floating-point timestamp to be filled.
Returns
True if the parsing and conversion are successful, false otherwise.

Definition at line 396 of file time_parser.mqh.

◆ str_to_ts() [1/3]

bool time_shield::str_to_ts ( const char * data,
std::size_t length,
ts_t & ts )
inline

Parse ISO8601 character buffer and convert to timestamp (seconds).

Parameters
dataPointer to character buffer.
lengthBuffer length in bytes.
tsOutput timestamp in seconds.
Returns
true if parsing succeeds, false otherwise.

Definition at line 837 of file time_parser.hpp.

◆ str_to_ts() [2/3]

bool time_shield::str_to_ts ( const std::string & str,
ts_t & ts )
inline

Convert an ISO8601 string to a timestamp (ts_t).

Parameters
strISO8601 string.
tsOutput timestamp (seconds).
Returns
True if parsing and conversion succeed, false otherwise.

Definition at line 821 of file time_parser.hpp.

◆ str_to_ts() [3/3]

bool time_shield::str_to_ts ( string str,
long & ts )

Convert an ISO8601 string to a timestamp (ts_t).

Parameters
strThe ISO8601 string.
tsThe timestamp to be filled.
Returns
True if the parsing and conversion are successful, false otherwise.

Definition at line 182 of file time_parser.mqh.

◆ str_to_ts_ms() [1/3]

bool time_shield::str_to_ts_ms ( const char * data,
std::size_t length,
ts_ms_t & ts )
inline

Convert ISO8601 character buffer to millisecond timestamp (ts_ms_t).

Parameters
dataPointer to character buffer.
lengthNumber of characters in buffer.
tsOutput timestamp in milliseconds.
Returns
True if parsing and conversion succeed, false otherwise.

Definition at line 866 of file time_parser.hpp.

◆ str_to_ts_ms() [2/3]

bool time_shield::str_to_ts_ms ( const std::string & str,
ts_ms_t & ts )
inline

Convert an ISO8601 string to a millisecond timestamp (ts_ms_t).

Parameters
strISO8601 string.
tsOutput timestamp (milliseconds).
Returns
True if parsing and conversion succeed, false otherwise.

Definition at line 850 of file time_parser.hpp.

◆ str_to_ts_ms() [3/3]

bool time_shield::str_to_ts_ms ( string str,
long & ts )

Convert an ISO8601 string to a millisecond timestamp (ts_ms_t).

Parameters
strThe ISO8601 string.
tsThe millisecond timestamp to be filled.
Returns
True if the parsing and conversion are successful, false otherwise.

Definition at line 193 of file time_parser.mqh.

◆ try_get_month_index() [1/2]

bool time_shield::try_get_month_index ( const std::string & month,
int & value )
inline

Try parse month name token into month index [1..12].

Parameters
monthMonth token (e.g. "Jan", "January"), case-insensitive.
valueOutput month index [1..12].
Returns
True on success, false otherwise.

Definition at line 392 of file time_parser.hpp.

◆ try_get_month_index() [2/2]

bool time_shield::try_get_month_index ( std::string_view month,
int & value )
inline

Try parse month name token into month index [1..12], string_view overload.

Definition at line 414 of file time_parser.hpp.

◆ try_get_month_number() [1/4]

template<class T = Month>
bool time_shield::try_get_month_number ( const char * month,
T & value )
inline

Try get the month number by name, const char* overload.

Template Parameters
TOutput type, default is Month enum.
Parameters
monthMonth token C-string.
valueOutput month number (1..12) converted to T.
Returns
True if month token is valid, false otherwise.

Definition at line 523 of file time_parser.hpp.

◆ try_get_month_number() [2/4]

template<class T = Month>
bool time_shield::try_get_month_number ( const std::string & month,
T & value )
inline

Try get the month number by name, with output parameter.

Template Parameters
TOutput type, default is Month enum.
Parameters
monthMonth token.
valueOutput month number (1..12) converted to T.
Returns
True if month token is valid, false otherwise.

Definition at line 453 of file time_parser.hpp.

◆ try_get_month_number() [3/4]

template<class T = Month>
bool time_shield::try_get_month_number ( std::string_view month,
T & value )
inline

Try get the month number by name, string_view overload.

Definition at line 484 of file time_parser.hpp.

◆ try_get_month_number() [4/4]

bool time_shield::try_get_month_number ( string month,
int & value )

Get the month number by name, with output parameter.

Parameters
monthThe name of the month as a string.
valueReference to store the month number if found.
Returns
True if the month name is valid, false otherwise.

Definition at line 70 of file time_parser.mqh.

◆ try_parse_month() [1/2]

bool time_shield::try_parse_month ( const std::string & month,
int & value )
inline

Try parse month name token into month index [1..12].

Parameters
monthMonth token (e.g. "Jan", "January"), case-insensitive.
valueOutput month index [1..12].
Returns
True on success, false otherwise.

Definition at line 306 of file time_parser.hpp.

◆ try_parse_month() [2/2]

bool time_shield::try_parse_month ( std::string_view month,
int & value )
inline

Try parse month name token into month index [1..12], string_view overload.

Parameters
monthMonth token view (e.g. "Jan", "January"), case-insensitive.
valueOutput month index [1..12].
Returns
True on success, false otherwise.

Definition at line 323 of file time_parser.hpp.

◆ try_parse_month_enum() [1/2]

template<class T = Month>
bool time_shield::try_parse_month_enum ( const std::string & month,
T & value )
inline

Try parse month name token into Month enum (or any T).

Template Parameters
TOutput type, default is Month enum.
Parameters
monthMonth token.
valueOutput month number (1..12) converted to T.
Returns
True if month token is valid, false otherwise.

Definition at line 354 of file time_parser.hpp.

◆ try_parse_month_enum() [2/2]

template<class T = Month>
bool time_shield::try_parse_month_enum ( std::string_view month,
T & value )
inline

Try parse month name token into Month enum (or any T), string_view overload.

Template Parameters
TOutput type, default is Month enum.
Parameters
monthMonth token view.
valueOutput month number (1..12) converted to T.
Returns
True if month token is valid, false otherwise.

Definition at line 378 of file time_parser.hpp.

◆ ts() [1/4]

ts_t time_shield::ts ( const char * data,
std::size_t length )
inline

Convert ISO8601 character buffer to timestamp (seconds).

Does not require null terminator. Returns 0 on failure (ambiguous if epoch is a valid value for your usage).

Parameters
dataPointer to character buffer.
lengthNumber of characters in buffer.
Returns
Timestamp in seconds, or 0 if parsing fails.

Definition at line 1028 of file time_parser.hpp.

◆ ts() [2/4]

ts_t time_shield::ts ( const char * str)
inline

Convert ISO8601 C-string to timestamp (seconds).

Returns 0 on failure (ambiguous if epoch is a valid value for your usage).

Parameters
strC-style string with ISO8601 timestamp, may be nullptr.
Returns
Timestamp in seconds, or 0 if parsing fails.

Definition at line 1016 of file time_parser.hpp.

◆ ts() [3/4]

ts_t time_shield::ts ( const std::string & str)
inline

Convert an ISO8601 string to a timestamp (ts_t).

This function parses a string in ISO8601 format and converts it to a timestamp. If parsing fails, it returns 0.

Parameters
strThe ISO8601 string.
Returns
The timestamp value. Returns 0 if parsing fails.

Definition at line 1089 of file time_parser.hpp.

◆ ts() [4/4]

long time_shield::ts ( string str)

Convert an ISO8601 string to a timestamp (ts_t).

Returns 0 if parsing fails.

Parameters
strThe ISO8601 string.
Returns
Timestamp value or 0 on error.

Definition at line 407 of file time_parser.mqh.

◆ ts_ms() [1/4]

ts_ms_t time_shield::ts_ms ( const char * data,
std::size_t length )
inline

Convert ISO8601 character buffer to timestamp (milliseconds).

Does not require null terminator. Returns 0 on failure.

Parameters
dataPointer to character buffer.
lengthNumber of characters in buffer.
Returns
Timestamp in milliseconds, or 0 if parsing fails.

Definition at line 1051 of file time_parser.hpp.

◆ ts_ms() [2/4]

ts_ms_t time_shield::ts_ms ( const char * str)
inline

Convert ISO8601 C-string to timestamp (milliseconds).

Returns 0 on failure (ambiguous if epoch is a valid value for your usage).

Parameters
strC-style string with ISO8601 timestamp, may be nullptr.
Returns
Timestamp in milliseconds, or 0 if parsing fails.

Definition at line 1040 of file time_parser.hpp.

◆ ts_ms() [3/4]

ts_ms_t time_shield::ts_ms ( const std::string & str)
inline

Convert an ISO8601 string to a millisecond timestamp (ts_ms_t).

This function parses a string in ISO8601 format and converts it to a millisecond timestamp. If parsing fails, it returns 0.

Parameters
strThe ISO8601 string.
Returns
The parsed millisecond timestamp, or 0 if parsing fails.

Definition at line 1100 of file time_parser.hpp.

◆ ts_ms() [4/4]

long time_shield::ts_ms ( string str)

Convert an ISO8601 string to a millisecond timestamp (ts_ms_t).

Returns 0 if parsing fails.

Parameters
strThe ISO8601 string.
Returns
Millisecond timestamp value or 0 on error.

Definition at line 417 of file time_parser.mqh.

◆ workday() [1/2]

bool time_shield::workday ( const std::string & str)
inline

Alias for is_workday(const std::string&).

Parse ISO8601 string and check if it falls on a workday (seconds precision).

Definition at line 922 of file time_parser.hpp.

◆ workday() [2/2]

bool time_shield::workday ( string str)

Alias for is_workday.

Parse ISO8601 string and check for workday using second precision.

Parameters
strISO8601 formatted string.
Returns
true when parsed timestamp is Monday through Friday.

Definition at line 212 of file time_parser.mqh.

◆ workday_ms() [1/2]

bool time_shield::workday_ms ( const std::string & str)
inline

Alias for is_workday_ms(const std::string&).

Parse ISO8601 string and check if it falls on a workday (milliseconds precision).

Definition at line 928 of file time_parser.hpp.

◆ workday_ms() [2/2]

bool time_shield::workday_ms ( string str)

Alias for is_workday_ms.

Parse ISO8601 string and check for workday using millisecond precision.

Parameters
strISO8601 formatted string.
Returns
true when parsed timestamp is Monday through Friday.

Definition at line 226 of file time_parser.mqh.