#include "tai.h" #include "leapsecs.h" #include "caldate.h" #include "caltime.h" /* XXX: breaks tai encapsulation */ void caltime_tai(struct caltime *ct, struct tai *t) { long day; long s; /* XXX: check for overflow? */ day = caldate_mjd(&ct->date); s = ct->hour * 60 + ct->minute; s = (s - ct->offset) * 60 + ct->second; t->x = day * ULL(86400) + ULL(4611686014920671114) + (int64_t) s; leapsecs_add(t,ct->second == 60); }