wangzhengquan
2021-02-22 044e10574fa4e007be408d991861d34ecf22622a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#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;
}