#include "time_util.h"
|
|
#define NANO 1000000000
|
|
|
struct timespec TimeUtil::calc_abs_time(const struct timespec *ts) {
|
|
struct timespec res;
|
struct timespec cur;
|
if (clock_gettime(CLOCK_REALTIME, &cur) == -1)
|
err_exit(errno, "clock_gettime");
|
|
res.tv_sec = cur.tv_sec + ts->tv_sec;
|
res.tv_nsec = cur.tv_nsec + ts->tv_nsec;
|
res.tv_sec = res.tv_sec + floor(res.tv_nsec / NANO);
|
res.tv_nsec = res.tv_nsec % NANO;
|
return res;
|
}
|
|
struct timespec TimeUtil::trim_time(const struct timespec *ts) {
|
|
struct timespec res;
|
res.tv_sec = ts->tv_sec + floor(ts->tv_nsec / NANO);
|
res.tv_nsec = ts->tv_nsec % NANO;
|
return res;
|
}
|