15 #define xroad_time_null (xroad_time_t){0}
64 #define xroad_time_to_str(tm) \
66 char* buff = (char*)alloca(64); \
67 int32_t s = xroad_format( \
68 buff, 64, "%02d:%02d:%02d", tm.hour, tm.min, tm.sec); \
71 s += xroad_format(buff + s, 64 - s, ".%D", tm.usec); \
75 s += xroad_format(buff + s, 64 - s, " %P", xroad_tzone_get_name(tm.tz)); \
77 xroad_str_len(buff, s); \
85 #define xroad_time_to_sql(v) \
89 xroad_time_t dt = (v); \
90 if (!xroad_time_is_null(dt)) \
92 xroad_str_t s = xroad_time_to_str(dt); \
93 buf = alloca(s.len + 2); \
95 memcpy(buf + 1, s.data, s.len); \
96 buf[s.len + 1] = '\''; \
99 xroad_str_len(buf, len); \
Definition: xroad_string.h:29
Definition: xroad_time.h:26
bool xroad_time_is_null(xroad_time_t time)
xroad_time_t xroad_time_from_ts(xroad_timestamp_t ts, xroad_tzone_t tz)
xroad_timestamp_t xroad_now_monotonic(void)
xroad_timestamp_t xroad_now_nano()
xroad_time_t xroad_time_change_tz(xroad_time_t tm, xroad_tzone_t new_tz)
xroad_time_t xroad_time_from_str(xroad_str_t time)
xroad_time_t xroad_time_min(xroad_time_t a, xroad_time_t b)
int64_t xroad_time_start_of_day(time_t now)
int64_t xroad_time_to_usec(xroad_time_t time)
int64_t xroad_time_distance(xroad_time_t a, xroad_time_t b)
xroad_time_t xroad_time_create(uint8_t hour, uint8_t min, uint8_t sec, uint32_t usec, xroad_tzone_t tz)
xroad_time_t xroad_time_now(xroad_tzone_t tz)
xroad_timestamp_t xroad_now_sec()
xroad_timestamp_t xroad_time_to_ts(xroad_time_t time)
xroad_time_t xroad_time_max(xroad_time_t a, xroad_time_t b)
xroad_timestamp_t xroad_now()
int64_t xroad_time_cmp(xroad_time_t lhs, xroad_time_t rhs)
xroad_time_t xroad_time_adjust(xroad_time_t time, int64_t usec)