3#ifndef _TIME_SHIELD_TIME_CONVERSIONS_ALIASES_HPP_INCLUDED
4#define _TIME_SHIELD_TIME_CONVERSIONS_ALIASES_HPP_INCLUDED
22 template<
class T = year_t>
29 template<
class T = year_t>
36 template<
class T = year_t>
46 template<
class T = uday_t>
54 template<
class T = uday_t>
62 template<
class T = uday_t>
70 template<
class T = uday_t>
77 template<
class T = uday_t>
87 template<
class T = uday_t>
95 template<
class T = uday_t>
103 template<
class T = uday_t>
111 template<
class T = uday_t>
118 template<
class T = uday_t>
127 template<
class T = ts_t>
134 template<
class T = ts_t>
141 template<
class T = ts_t>
148 template<
class T = ts_t>
157 template<
class T = ts_t>
164 template<
class T = ts_t>
171 template<
class T = ts_t>
178 template<
class T = ts_t>
187 template<
class T = ts_t>
194 template<
class T = ts_t>
201 template<
class T = ts_t>
210 template<
class T = ts_ms_t>
217 template<
class T = ts_ms_t>
224 template<
class T = ts_ms_t>
233 template<
class T =
int64_t>
240 template<
class T =
int64_t>
247 template<
class T =
int64_t>
254 template<
class T =
int64_t>
261 template<
class T =
int64_t>
272 TIME_SHIELD_CONSTEXPR
inline auto dt_to_ts(
const T& date_time)
280 TIME_SHIELD_CONSTEXPR
inline auto tm_to_ts(
const std::tm* timeinfo)
289 template<
class T =
int>
299 template<
class T1,
class T2 = ts_t>
307 template<
class T1,
class T2 = ts_t>
426 TIME_SHIELD_CONSTEXPR
inline ts_t ts(
year_t year,
int month,
int day,
int hour,
int min,
int sec) {
765 const T& date_time) {
774 const T& date_time) {
783 const T& date_time) {
792 const T& date_time) {
800 TIME_SHIELD_CONSTEXPR
inline ts_t ts(
const std::tm* timeinfo) {
806 TIME_SHIELD_CONSTEXPR
inline ts_t get_ts(
const std::tm* timeinfo) {
824 TIME_SHIELD_CONSTEXPR
inline ts_t to_ts(
const std::tm* timeinfo) {
1324 const T& date_time) {
1342 const T& date_time) {
1351 const T& date_time) {
1360 const T& date_time) {
1369 const std::tm *timeinfo) {
1375 TIME_SHIELD_CONSTEXPR
inline auto tm_to_ts_ms(
const std::tm *timeinfo)
1383 const std::tm *timeinfo) {
1390 const std::tm *timeinfo) {
1397 const std::tm *timeinfo) {
1422 template<
class T1 = year_t,
class T2 =
int,
class T3 =
int>
1423 constexpr fts_t to_fts(T1
year, T2 month, T2 day, T2 hour = 0, T2 min = 0, T2 sec = 0, T3 ms = 0) {
1446 template<
class T1 = year_t,
class T2 =
int,
class T3 =
int>
1447 constexpr fts_t fts(T1
year, T2 month, T2 day, T2 hour = 0, T2 min = 0, T2 sec = 0, T3 ms = 0) {
1470 template<
class T1 = year_t,
class T2 =
int,
class T3 =
int>
1530 TIME_SHIELD_CONSTEXPR
inline auto tm_to_fts(
const std::tm* timeinfo)
1545 TIME_SHIELD_CONSTEXPR
inline fts_t fts(
const std::tm* timeinfo) {
1560 template<
class T =
int>
1567 template<
class T =
int>
1574 template<
class T =
int>
1581 template<
class T =
int>
1590 template<
class T = year_t>
1597 template<
class T = year_t>
1604 template<
class T = year_t>
1613 template<
class T = year_t>
1620 template<
class T = year_t>
1627 template<
class T = year_t>
1664 template<
class T = year_t>
1671 template<
class T = year_t>
1680 template<
class T = year_t>
1687 template<
class T = year_t>
1714 template<
class T1 =
int,
class T2 = year_t,
class T3 =
int>
1723 template<
class T1 =
int>
1730 template<
class T1 =
int>
1739 template<
class T1 =
int,
class T2 = year_t>
1748 template<
class T =
int>
1765 template<
class T =
int>
1796 template<
class T =
int>
1805 template<
class T =
int>
1838 template<
class T1 = Weekday>
1845 template<
class T1 = Weekday>
1852 template<
class T1 = Weekday>
1859 template<
class T1 = Weekday>
1866 template<
class T1 = Weekday>
1873 template<
class T1 = Weekday>
1880 template<
class T1 = Weekday>
1887 template<
class T1 = Weekday>
1897 template<class T1 = Weekday, class T2, typename std::enable_if<std::is_class<T2>::value,
int>::type = 0>
1905 template<class T1 = Weekday, class T2, typename std::enable_if<std::is_class<T2>::value,
int>::type = 0>
1913 template<class T1 = Weekday, class T2, typename std::enable_if<std::is_class<T2>::value,
int>::type = 0>
1921 template<class T1 = Weekday, class T2, typename std::enable_if<std::is_class<T2>::value,
int>::type = 0>
1929 template<class T1 = Weekday, class T2, typename std::enable_if<std::is_class<T2>::value,
int>::type = 0>
1937 template<class T1 = Weekday, class T2, typename std::enable_if<std::is_class<T2>::value,
int>::type = 0>
1945 template<class T1 = Weekday, class T2, typename std::enable_if<std::is_class<T2>::value,
int>::type = 0>
1946 constexpr T1
dow(
const T2& date) {
1953 template<class T1 = Weekday, class T2, typename std::enable_if<std::is_class<T2>::value,
int>::type = 0>
1954 constexpr T1
wd(
const T2& date) {
1963 template<class T = Weekday, class U, typename std::enable_if<std::is_integral<U>::value,
int>::type = 0>
1970 template<class T = Weekday, class U, typename std::enable_if<std::is_integral<U>::value,
int>::type = 0>
1977 template<class T = Weekday, class U, typename std::enable_if<std::is_integral<U>::value,
int>::type = 0>
1984 template<class T = Weekday, class U, typename std::enable_if<std::is_integral<U>::value,
int>::type = 0>
1993 template<class T = Weekday, class U, typename std::enable_if<std::is_integral<U>::value,
int>::type = 0>
2002 template<
class T = Weekday>
2009 template<
class T = Weekday>
2042 template<
class T1 =
int,
class T2 = year_t,
class T3 =
int>
2099 template<
class T =
int>
constexpr T start_of_day_from_unix_day_ms(uday_t unix_day) noexcept
Alias for unix_day_to_ts_ms function.
constexpr ts_t min_begin(ts_t ts=time_shield::ts()) noexcept
Alias for start_of_min function.
constexpr T unix_day(ts_t ts=time_shield::ts()) noexcept
Alias for days_since_epoch function.
constexpr T1 days_in_month(T2 year, T3 month) noexcept
Alias for num_days_in_month function.
constexpr T get_unixday(ts_t ts=time_shield::ts()) noexcept
Alias for get_unix_day function.
constexpr T next_day_from_unix_day_ms(uday_t unix_day) noexcept
Alias for start_of_next_day_from_unix_day_ms function.
TIME_SHIELD_CONSTEXPR T get_year(ts_t ts=time_shield::ts())
Alias for year_of function.
TIME_SHIELD_CONSTEXPR ts_ms_t year_begin_date_ms(T year)
Alias for start_of_year_date_ms function.
constexpr T get_unix_day(ts_t ts=time_shield::ts()) noexcept
Alias for days_since_epoch function.
constexpr T next_day_unixday_ms(uday_t unix_day) noexcept
Alias for start_of_next_day_from_unix_day_ms function.
ts_ms_t year_start_ms(ts_ms_t ts_ms=time_shield::ts_ms())
Alias for start_of_year_ms function.
constexpr T days_between(ts_t start, ts_t stop) noexcept
Get the number of days between two timestamps.
TIME_SHIELD_CONSTEXPR ts_ms_t get_ts_ms(year_t year, int month, int day)
Alias for to_timestamp_ms.
constexpr T get_days_difference(ts_t start, ts_t stop) noexcept
Alias for days_between function.
constexpr ts_ms_t day_start_ms(ts_ms_t ts_ms=time_shield::ts_ms()) noexcept
Alias for start_of_day_ms function.
constexpr T years_since_epoch(ts_t ts) noexcept
Converts a UNIX timestamp to a year.
TIME_SHIELD_CONSTEXPR T1 get_weekday_from_date(const T2 &date)
Alias for weekday_of_date.
constexpr T unixday_ms(ts_ms_t t_ms=time_shield::ts_ms()) noexcept
Alias for days_since_epoch function.
constexpr T1 get_dow(const T2 &date)
Alias for weekday_of_date.
constexpr ts_t finish_of_min(ts_t ts=time_shield::ts()) noexcept
Alias for end_of_min function.
constexpr T1 dow_from_date(const T2 &date)
Alias for weekday_of_date.
constexpr T1 dow(year_t year, int month, int day)
Alias for day_of_week_date.
TIME_SHIELD_CONSTEXPR bool workday(ts_t ts) noexcept
Alias for is_workday(ts_t).
constexpr T start_of_next_day_from_unix_day(uday_t unix_day) noexcept
Converts a UNIX day to a timestamp representing the start of the next day in seconds.
constexpr T wd_ts(U ts) noexcept
Alias for weekday_of_ts.
constexpr T unixday_to_ts_ms(uday_t unix_day) noexcept
Alias for unix_day_to_ts_ms function.
constexpr ts_ms_t day_end_ms(ts_ms_t ts_ms=time_shield::ts_ms()) noexcept
Alias for end_of_day_ms function.
constexpr T uday_to_ts_ms(uday_t unix_day) noexcept
Alias for unix_day_to_ts_ms function.
constexpr ts_ms_t finish_of_hour_ms(ts_ms_t ts_ms=time_shield::ts_ms()) noexcept
Alias for end_of_hour_ms function.
constexpr T next_day_from_unix_day(uday_t unix_day) noexcept
Alias for start_of_next_day_from_unix_day function.
TIME_SHIELD_CONSTEXPR bool is_valid_tz_offset(tz_t off) noexcept
Check if a numeric offset is within supported bounds.
constexpr ts_t previous_day_start(ts_t ts=time_shield::ts(), T days=1) noexcept
Alias for start_of_prev_day function.
TIME_SHIELD_CONSTEXPR ts_t year_begin_date(T year)
Alias for start_of_year_date function.
TIME_SHIELD_CONSTEXPR ts_t ts(year_t year, int month, int day)
Alias for to_timestamp.
TIME_SHIELD_CONSTEXPR T1 num_days_in_year(T2 year) noexcept
Get the number of days in a year.
TIME_SHIELD_CONSTEXPR T1 day_of_week_date(T2 year, T3 month, T4 day)
Get the day of the week.
TIME_SHIELD_CONSTEXPR ts_ms_t year_start_date_ms(T year)
Alias for start_of_year_date_ms function.
TIME_SHIELD_CONSTEXPR T to_year(ts_t ts=time_shield::ts())
Alias for year_of function.
constexpr T get_unix_day_ms(ts_ms_t t_ms=time_shield::ts_ms()) noexcept
Alias for days_since_epoch function.
constexpr ts_t finish_of_week(ts_t ts=time_shield::ts())
Alias for end_of_week function.
constexpr T unix_day_ms(ts_ms_t t_ms=time_shield::ts_ms()) noexcept
Alias for days_since_epoch function.
constexpr T wd_ms(ts_ms_t ts_ms)
Alias for weekday_of_ts_ms function.
TIME_SHIELD_CONSTEXPR T hour24_to_12(T hour) noexcept
Converts a 24-hour format hour to a 12-hour format.
TIME_SHIELD_CONSTEXPR tz_t offset_hm(int hour, int min=0) noexcept
Alias for tz_offset_hm.
constexpr T to_unix_year(ts_t ts) noexcept
Alias for years_since_epoch function.
TIME_SHIELD_CONSTEXPR ts_t year_begin(ts_t ts=time_shield::ts())
Alias for start_of_year function.
constexpr T uday_ms(ts_ms_t t_ms=time_shield::ts_ms()) noexcept
Alias for days_since_epoch function.
constexpr T unix_year(ts_t ts) noexcept
Alias for years_since_epoch function.
constexpr T get_unix_min(ts_t ts=time_shield::ts())
Alias for min_since_epoch function.
TIME_SHIELD_CONSTEXPR auto tm_to_ts_ms(const std::tm *timeinfo) -> decltype(tm_to_timestamp_ms(timeinfo))
Alias for tm_to_timestamp_ms function.
constexpr T1 weekday_of(const T2 &date)
Alias for weekday_of_date.
constexpr T unix_day_to_timestamp(uday_t unix_day) noexcept
Alias for unix_day_to_ts function.
TIME_SHIELD_CONSTEXPR T1 weekday_of_date(const T2 &date)
Get the day of the week from a date structure.
TIME_SHIELD_CONSTEXPR ts_ms_t ts_ms(year_t year, int month, int day)
Alias for to_timestamp_ms.
constexpr ts_ms_t hour_begin_ms(ts_ms_t ts_ms=time_shield::ts_ms()) noexcept
Alias for start_of_hour_ms function.
TIME_SHIELD_CONSTEXPR ts_t to_ts(year_t year, int month, int day)
Alias for to_timestamp.
TIME_SHIELD_CONSTEXPR auto dt_to_ts_ms(const T &date_time) -> decltype(dt_to_timestamp_ms(date_time))
Alias for dt_to_timestamp_ms function.
constexpr ts_t saturday_begin(ts_t ts=time_shield::ts())
Alias for start_of_saturday function.
T to_dt_struct_ms(ts_ms_t ts)
Alias for to_date_time_ms function.
TIME_SHIELD_CONSTEXPR T get_year_ms(ts_ms_t ts_ms=time_shield::ts_ms())
Alias for year_of_ms function.
constexpr T1 get_weekday(year_t year, int month, int day)
Alias for day_of_week_date.
constexpr T diff_in_days(ts_t start, ts_t stop) noexcept
Alias for days_between function.
constexpr T dow_ts(U ts) noexcept
Alias for weekday_of_ts.
constexpr ts_t day_start(ts_t ts=time_shield::ts()) noexcept
Alias for start_of_day function.
constexpr ts_t finish_of_hour_sec(ts_ms_t ts_ms=time_shield::ts_ms()) noexcept
Alias for end_of_hour_sec function.
constexpr T next_day_unix_day(uday_t unix_day) noexcept
Alias for start_of_next_day_from_unix_day function.
constexpr fts_t to_fts(T1 year, T2 month, T2 day, T2 hour=0, T2 min=0, T2 sec=0, T3 ms=0)
Alias for to_ftimestamp.
TIME_SHIELD_CONSTEXPR ts_t final_sunday_of_month(ts_t ts=time_shield::ts())
Alias for last_sunday_of_month function.
constexpr T1 day_of_week(year_t year, int month, int day)
Alias for day_of_week_date.
constexpr T minutes_since_epoch(ts_t ts=time_shield::ts())
Alias for min_since_epoch function.
TIME_SHIELD_CONSTEXPR bool valid_tz_offset(tz_t off) noexcept
Alias for is_valid_tz_offset.
constexpr T1 wd(const T2 &date)
Alias for weekday_of_date.
T1 to_dt_struct(T2 ts)
Alias for to_date_time function.
TIME_SHIELD_CONSTEXPR ts_t year_start_date(T year)
Alias for start_of_year_date function.
TIME_SHIELD_CONSTEXPR ts_t get_ts(year_t year, int month, int day)
Alias for to_timestamp.
TIME_SHIELD_CONSTEXPR ts_t last_day_of_month(ts_t ts=time_shield::ts())
Alias for end_of_month function.
constexpr ts_t start_day_sec(ts_ms_t ts_ms=time_shield::ts_ms()) noexcept
Alias for start_of_day_sec function.
TIME_SHIELD_CONSTEXPR ts_t year_start(ts_t ts=time_shield::ts())
Alias for start_of_year function.
constexpr T1 ms_to_sec(T2 ts_ms) noexcept
Converts a timestamp from milliseconds to seconds.
TIME_SHIELD_CONSTEXPR auto tm_to_fts(const std::tm *timeinfo) -> decltype(tm_to_ftimestamp(timeinfo))
Alias for tm_to_ftimestamp.
constexpr T start_of_day_from_unix_day(uday_t unix_day) noexcept
Alias for unix_day_to_ts function.
TIME_SHIELD_CONSTEXPR ts_t get_timestamp(year_t year, int month, int day)
Alias for to_timestamp.
T to_dt_ms(ts_ms_t ts)
Alias for to_date_time_ms function.
TIME_SHIELD_CONSTEXPR ts_ms_t year_end_ms(ts_ms_t ts_ms=time_shield::ts_ms())
Alias for end_of_year_ms function.
constexpr ts_t day_end(ts_t ts=time_shield::ts()) noexcept
Alias for end_of_day function.
TIME_SHIELD_CONSTEXPR tz_t tz_offset_hm(int hour, int min=0) noexcept
Build offset in seconds from hours/minutes.
constexpr ts_ms_t next_day_start_ms(ts_ms_t ts_ms, T days=1) noexcept
Alias for start_of_next_day_ms function.
constexpr T uday_to_ts(uday_t unix_day) noexcept
Alias for unix_day_to_ts function.
constexpr T next_day_unix_day_ms(uday_t unix_day) noexcept
Alias for start_of_next_day_from_unix_day_ms function.
constexpr ts_t week_begin(ts_t ts=time_shield::ts())
Alias for start_of_week function.
TIME_SHIELD_CONSTEXPR tz_t tz_offset(const T &tz) noexcept
Alias for to_tz_offset.
constexpr T hour_in_day(ts_t ts=time_shield::ts()) noexcept
Alias for hour_of_day function.
constexpr T umin(ts_t ts=time_shield::ts())
Alias for min_since_epoch function.
constexpr T day_of_week_ms(ts_ms_t ts_ms)
Alias for weekday_of_ts_ms function.
constexpr T get_unix_year(ts_t ts) noexcept
Alias for years_since_epoch function.
TIME_SHIELD_CONSTEXPR T1 final_sunday_month_day(T2 year, T3 month)
Alias for last_sunday_month_day function.
TIME_SHIELD_CONSTEXPR ts_t ts_from_tm(const std::tm *timeinfo)
Alias for tm_to_timestamp.
constexpr T to_unix_min(ts_t ts=time_shield::ts())
Alias for min_since_epoch function.
constexpr T unix_min(ts_t ts=time_shield::ts())
Alias for min_since_epoch function.
constexpr T unix_day_to_timestamp_ms(uday_t unix_day) noexcept
Alias for unix_day_to_ts_ms function.
constexpr ts_t day_start_sec(ts_ms_t ts_ms=time_shield::ts_ms()) noexcept
Alias for start_of_day_sec function.
constexpr T min_since_epoch(ts_t ts=time_shield::ts())
Get UNIX minute.
TIME_SHIELD_CONSTEXPR T num_days_in_year_ts(ts_t ts=time_shield::ts())
Get the number of days in the current year.
TIME_SHIELD_CONSTEXPR T year_of_ms(ts_ms_t ts_ms=time_shield::ts_ms())
Get the year from the timestamp in milliseconds.
TIME_SHIELD_CONSTEXPR ts_ms_t to_ts_ms(year_t year, int month, int day)
Alias for to_timestamp_ms.
constexpr T unixday(ts_t ts=time_shield::ts()) noexcept
Alias for days_since_epoch function.
constexpr T days(ts_t start, ts_t stop) noexcept
Alias for days_between function.
TIME_SHIELD_CONSTEXPR bool workday_ms(ts_ms_t ts_ms) noexcept
Alias for is_workday(ts_ms_t).
constexpr ts_t next_day_start(ts_t ts, T days=1) noexcept
Alias for start_of_next_day function.
constexpr T1 weekday(year_t year, int month, int day)
Alias for day_of_week_date.
constexpr T days_since_epoch_ms(ts_ms_t t_ms=time_shield::ts_ms()) noexcept
Get UNIX day from milliseconds timestamp.
constexpr auto dt_to_fts(const T &date_time) -> decltype(dt_to_ftimestamp(date_time))
Alias for dt_to_ftimestamp.
ts_ms_t year_begin_ms(ts_ms_t ts_ms=time_shield::ts_ms())
Alias for start_of_year_ms function.
constexpr T get_days(ts_t start, ts_t stop) noexcept
Alias for days_between function.
constexpr T start_of_next_day_from_unix_day_ms(uday_t unix_day) noexcept
Converts a UNIX day to a timestamp representing the start of the next day in milliseconds.
TIME_SHIELD_CONSTEXPR ts_t year_end(ts_t ts=time_shield::ts())
Alias for end_of_year function.
constexpr T get_dow_from_ts(U ts) noexcept
Alias for weekday_of_ts.
constexpr ts_t hour_begin_sec(ts_ms_t ts_ms=time_shield::ts_ms()) noexcept
Alias for start_of_hour_sec function.
TIME_SHIELD_CONSTEXPR auto dt_to_ts(const T &date_time) -> decltype(dt_to_timestamp(date_time))
Alias for dt_to_timestamp.
TIME_SHIELD_CONSTEXPR T year(ts_t ts=time_shield::ts())
Alias for year_of function.
constexpr T1 days_in_year(T2 year) noexcept
Alias for num_days_in_year function.
constexpr ts_t day_end_sec(ts_ms_t ts_ms=time_shield::ts_ms()) noexcept
Alias for end_of_day_sec function.
T1 to_dt(T2 ts)
Alias for to_date_time function.
TIME_SHIELD_CONSTEXPR ts_t month_begin(ts_t ts=time_shield::ts())
Alias for start_of_month function.
TIME_SHIELD_CONSTEXPR T year_of(ts_t ts=time_shield::ts())
Get the year from the timestamp.
TIME_SHIELD_CONSTEXPR T h24_to_h12(T hour) noexcept
Alias for hour24_to_12 function.
constexpr T unix_day_to_ts(uday_t unix_day) noexcept
Converts a UNIX day to a timestamp in seconds.
TIME_SHIELD_CONSTEXPR tz_t to_tz_offset(const T &tz) noexcept
Convert time zone struct to offset in seconds.
constexpr T unix_day_to_ts_ms(uday_t unix_day) noexcept
Converts a UNIX day to a timestamp in milliseconds.
constexpr ts_t finish_of_hour(ts_t ts=time_shield::ts()) noexcept
Alias for end_of_hour function.
constexpr ts_t hour_begin(ts_t ts=time_shield::ts()) noexcept
Alias for start_of_hour function.
TIME_SHIELD_CONSTEXPR auto tm_to_ts(const std::tm *timeinfo) -> decltype(tm_to_timestamp(timeinfo))
Alias for tm_to_timestamp.
TIME_SHIELD_CONSTEXPR ts_ms_t get_timestamp_ms(year_t year, int month, int day)
Alias for to_timestamp_ms.
TIME_SHIELD_CONSTEXPR T to_year_ms(ts_ms_t ts_ms=time_shield::ts_ms())
Alias for year_of_ms function.
TIME_SHIELD_CONSTEXPR T year_ms(ts_ms_t ts_ms=time_shield::ts_ms())
Alias for year_of_ms function.
constexpr T1 day_of_week_dt(const T2 &date)
Alias for weekday_of_date.
constexpr T unixday_to_ts(uday_t unix_day) noexcept
Alias for unix_day_to_ts function.
constexpr T next_day_unixday(uday_t unix_day) noexcept
Alias for start_of_next_day_from_unix_day function.
constexpr T get_unixday_ms(ts_ms_t t_ms=time_shield::ts_ms()) noexcept
Alias for days_since_epoch function.
constexpr T uday(ts_t ts=time_shield::ts()) noexcept
Alias for days_since_epoch function.
constexpr T days_since_epoch(ts_t ts=time_shield::ts()) noexcept
Get UNIX day.
constexpr T days_in_year_ts(ts_t ts=time_shield::ts())
Alias for num_days_in_year_ts function.
bool is_workday(const std::string &str)
Parse ISO8601 string and check if it falls on a workday (seconds precision).
bool is_workday_ms(const std::string &str)
Parse ISO8601 string and check if it falls on a workday (milliseconds precision).
TIME_SHIELD_CONSTEXPR ts_t tm_to_timestamp(const std::tm *timeinfo)
Converts a std::tm structure to a timestamp.
constexpr ts_t end_of_hour(ts_t ts=time_shield::ts()) noexcept
Get the timestamp at the end of the hour.
TIME_SHIELD_CONSTEXPR fts_t dt_to_ftimestamp(const T &date_time)
Converts a date-time structure to a floating-point timestamp.
TIME_SHIELD_CONSTEXPR fts_t tm_to_ftimestamp(const std::tm *timeinfo)
Converts a std::tm structure to a floating-point timestamp.
constexpr ts_t start_of_saturday(ts_t ts=time_shield::ts())
Get the timestamp of the start of Saturday.
constexpr ts_t end_of_week(ts_t ts=time_shield::ts())
Get the timestamp of the end of the week.
TIME_SHIELD_CONSTEXPR ts_ms_t end_of_year_ms(ts_ms_t ts_ms=time_shield::ts_ms())
Get the timestamp in milliseconds of the end of the year.
T to_date_time_ms(ts_ms_t ts)
Converts a timestamp in milliseconds to a date-time structure with milliseconds.
constexpr ts_t start_of_min(ts_t ts=time_shield::ts()) noexcept
Get the timestamp of the beginning of the minute.
TIME_SHIELD_CONSTEXPR T1 last_sunday_month_day(T2 year, T3 month)
Get the day of the last Sunday of the given month and year.
constexpr T weekday_of_ts_ms(ts_ms_t ts_ms)
Get the weekday from a timestamp in milliseconds.
constexpr ts_ms_t end_of_hour_ms(ts_ms_t ts_ms=time_shield::ts_ms()) noexcept
Get the timestamp at the end of the hour in milliseconds.
constexpr ts_ms_t end_of_day_ms(ts_ms_t ts_ms=time_shield::ts_ms()) noexcept
Get the timestamp at the end of the day in milliseconds.
TIME_SHIELD_CONSTEXPR ts_t end_of_year(ts_t ts=time_shield::ts())
Get the end-of-year timestamp.
constexpr ts_ms_t start_of_day_ms(ts_ms_t ts_ms=time_shield::ts_ms()) noexcept
Get the start of the day timestamp in milliseconds.
constexpr ts_t start_of_hour(ts_t ts=time_shield::ts()) noexcept
Get the timestamp at the start of the hour.
constexpr T hour_of_day(ts_t ts=time_shield::ts()) noexcept
Get hour of day. This function returns a value between 0 to 23.
TIME_SHIELD_CONSTEXPR ts_t start_of_year(ts_t ts) noexcept
Get the start of the year timestamp.
constexpr ts_t end_of_day(ts_t ts=time_shield::ts()) noexcept
Get the timestamp at the end of the day.
TIME_SHIELD_CONSTEXPR ts_t tm_to_timestamp_ms(const std::tm *timeinfo)
Converts a std::tm structure to a timestamp in milliseconds.
TIME_SHIELD_CONSTEXPR ts_t start_of_month(ts_t ts=time_shield::ts())
Get the timestamp at the start of the current month.
TIME_SHIELD_CONSTEXPR ts_t dt_to_timestamp(const T &date_time)
Converts a date-time structure to a timestamp.
constexpr ts_ms_t start_of_hour_ms(ts_ms_t ts_ms=time_shield::ts_ms()) noexcept
Get the timestamp at the start of the hour. This function sets the minute and second to zero.
TIME_SHIELD_CONSTEXPR T1 num_days_in_month_ts(ts_t ts=time_shield::ts()) noexcept
Get the number of days in the month of the given timestamp.
TIME_SHIELD_CONSTEXPR fts_t to_ftimestamp(T1 year, T2 month, T2 day, T2 hour=0, T2 min=0, T2 sec=0, T3 ms=0)
Converts a date and time to a floating-point timestamp.
TIME_SHIELD_CONSTEXPR ts_t end_of_month(ts_t ts=time_shield::ts())
Get the last timestamp of the current month.
constexpr ts_t start_of_day(ts_t ts=time_shield::ts()) noexcept
Get the start of the day timestamp.
TIME_SHIELD_CONSTEXPR ts_ms_t start_of_year_ms(ts_ms_t ts_ms=time_shield::ts_ms())
Get the timestamp at the start of the year in milliseconds.
constexpr ts_t end_of_hour_sec(ts_ms_t ts_ms=time_shield::ts_ms()) noexcept
Get the timestamp at the end of the hour in seconds.
TIME_SHIELD_CONSTEXPR ts_t to_timestamp(T1 year, T2 month, T2 day, T2 hour=0, T2 min=0, T2 sec=0)
Converts a date and time to a timestamp.
constexpr ts_t end_of_min(ts_t ts=time_shield::ts()) noexcept
Get the timestamp of the end of the minute.
constexpr ts_ms_t start_of_next_day_ms(ts_ms_t ts_ms, T days=1) noexcept
Get the timestamp of the start of the day after a specified number of days.
TIME_SHIELD_CONSTEXPR ts_t last_sunday_of_month(ts_t ts=time_shield::ts())
Get the timestamp of the last Sunday of the current month.
TIME_SHIELD_CONSTEXPR ts_t start_of_year_date(T year)
Get the timestamp of the start of the year.
constexpr ts_t start_of_next_day(ts_t ts, T days=1) noexcept
Get the timestamp of the start of the day after a specified number of days.
T1 to_date_time(T2 ts)
Converts a timestamp to a date-time structure.
TIME_SHIELD_CONSTEXPR ts_t dt_to_timestamp_ms(const T &date_time)
Converts a date-time structure to a timestamp in milliseconds.
constexpr ts_t start_of_week(ts_t ts=time_shield::ts())
Get the timestamp of the beginning of the week.
constexpr T weekday_of_ts(ts_t ts) noexcept
Get the second of the week day from a timestamp.
constexpr ts_t start_of_prev_day(ts_t ts=time_shield::ts(), T days=1) noexcept
Get timestamp of the start of the previous day.
constexpr T1 num_days_in_month(T2 year, T3 month) noexcept
Get the number of days in a month.
constexpr T get_weekday_from_ts(ts_t ts) noexcept
Alias for weekday_of_ts.
TIME_SHIELD_CONSTEXPR ts_ms_t start_of_year_date_ms(T year)
Get the timestamp in milliseconds of the start of the year.
constexpr ts_t start_of_hour_sec(ts_ms_t ts_ms=time_shield::ts_ms()) noexcept
Get the timestamp at the start of the hour.
constexpr ts_t end_of_day_sec(ts_ms_t ts_ms=time_shield::ts_ms()) noexcept
Get the timestamp at the end of the day in seconds.
TIME_SHIELD_CONSTEXPR ts_ms_t to_timestamp_ms(T1 year, T2 month, T2 day, T2 hour=0, T2 min=0, T2 sec=0, T2 ms=0)
Converts a date-time structure to a timestamp in milliseconds.
int64_t ts_t
Unix timestamp in seconds since 1970‑01‑01T00:00:00Z.
int32_t tz_t
Time zone offset in minutes from UTC (e.g., +180 = UTC+3).
int64_t ts_ms_t
Unix timestamp in milliseconds since epoch.
int64_t uday_t
Unix day count since 1970‑01‑01 (days since epoch).
double fts_t
Floating-point timestamp (fractional seconds since epoch).
int64_t year_t
Year as an integer (e.g., 2024).
ts_t ts() noexcept
Get the current UTC timestamp in seconds.
ts_t timestamp() noexcept
Get the current UTC timestamp in seconds.
fts_t ftimestamp() noexcept
Get the current UTC timestamp in floating-point seconds.
ts_ms_t ts_ms() noexcept
Get the current UTC timestamp in milliseconds.
ts_ms_t timestamp_ms() noexcept
Get the current UTC timestamp in milliseconds.
fts_t fts() noexcept
Get the current UTC timestamp in floating-point seconds.
Main namespace for the Time Shield library.