fix pl-tai
This commit is contained in:
31
packages/PLStream/libtai/caltime_utc.c
Normal file
31
packages/PLStream/libtai/caltime_utc.c
Normal file
@@ -0,0 +1,31 @@
|
||||
#include "tai.h"
|
||||
#include "leapsecs.h"
|
||||
#include "caldate.h"
|
||||
#include "caltime.h"
|
||||
|
||||
/* XXX: breaks tai encapsulation */
|
||||
|
||||
void caltime_utc(struct caltime *ct, struct tai *t, int *pwday, int *pyday)
|
||||
{
|
||||
struct tai t2 = *t;
|
||||
uint64_t u;
|
||||
int leap;
|
||||
long s;
|
||||
|
||||
/* XXX: check for overfow? */
|
||||
|
||||
leap = leapsecs_sub(&t2);
|
||||
u = t2.x;
|
||||
|
||||
u += 58486;
|
||||
s = (long)(u % ULL(86400));
|
||||
|
||||
ct->second = (s % 60) + leap; s /= 60;
|
||||
ct->minute = s % 60; s /= 60;
|
||||
ct->hour = s;
|
||||
|
||||
u /= ULL(86400);
|
||||
caldate_frommjd(&ct->date, (int64_t)u - LL(53375995543064), pwday, pyday);
|
||||
|
||||
ct->offset = 0;
|
||||
}
|
Reference in New Issue
Block a user