gnss-js 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +6 -8
- package/dist/index.d.ts +6 -8
- package/dist/index.js +112 -108
- package/dist/index.mjs +107 -101
- package/package.json +1 -1
- package/test/gnss-scales.test.js +42 -25
- package/test/test.js +11 -0
- package/test/utc.test.js +12 -1
package/dist/index.d.mts
CHANGED
|
@@ -17,17 +17,14 @@ declare const MILLISECONDS_IN_MINUTE: number;
|
|
|
17
17
|
declare const MILLISECONDS_IN_SECOND: number;
|
|
18
18
|
declare const MILLISECONDS_TT_TAI: number;
|
|
19
19
|
declare const MILLISECONDS_GPS_TAI: number;
|
|
20
|
-
declare const START_LEAP_SECS_GPS: number;
|
|
21
20
|
declare const START_GPS_TIME: Date;
|
|
22
21
|
declare const START_GAL_TIME: Date;
|
|
23
22
|
declare const START_BDS_TIME: Date;
|
|
24
23
|
declare const START_UNIX_TIME: Date;
|
|
25
24
|
declare const START_NTP_TIME: Date;
|
|
26
25
|
declare const START_GLO_LEAP: Date;
|
|
27
|
-
declare const START_MJD2000_TIME: Date;
|
|
28
26
|
declare const START_TAI_TIME: Date;
|
|
29
27
|
declare const RINEX_CODES: HourCode[];
|
|
30
|
-
declare const START_JULIAN_CALENDAR_UNIX_SECONDS = 2440587.5;
|
|
31
28
|
declare const START_JULIAN_TAI = 2436204.5;
|
|
32
29
|
declare const DAYS_MJD_JULIAN = 2400000.5;
|
|
33
30
|
declare const DAYS_MJD2000_MJD = 51544.5;
|
|
@@ -54,10 +51,10 @@ declare function getDateFromUnixTime(unixTime: number): Date;
|
|
|
54
51
|
declare function getWeekNumber(date: Date): number;
|
|
55
52
|
declare function getTimeOfWeek(date: Date): number;
|
|
56
53
|
declare function getDateFromGpsData(weekNumber: number, timeOfWeek: number): Date;
|
|
57
|
-
declare function
|
|
58
|
-
declare function
|
|
59
|
-
declare function
|
|
60
|
-
declare function
|
|
54
|
+
declare function getTaiDate(date: Date): Date;
|
|
55
|
+
declare function getDateFromTai(tai_date: Date): Date;
|
|
56
|
+
declare function getTtDate(date: Date): Date;
|
|
57
|
+
declare function getDateFromTt(tt_date: Date): Date;
|
|
61
58
|
declare function getGloN4(date: Date): number;
|
|
62
59
|
declare function getGloNA(date: Date): number;
|
|
63
60
|
declare function getDateFromGloN(n4: number, na: number, tod: number): Date;
|
|
@@ -80,6 +77,7 @@ declare function getTimeDifferenceFromObject(timeDifferenceObject: TimeDifferenc
|
|
|
80
77
|
declare function getLeap(date: Date): number;
|
|
81
78
|
declare function getGpsLeap(date: Date): number;
|
|
82
79
|
declare function getUtcDate(date: Date): Date;
|
|
80
|
+
declare function getDateFromUtc(utc_date: Date): Date;
|
|
83
81
|
|
|
84
82
|
declare function getJulianDate(date: Date): number;
|
|
85
83
|
declare function getDateFromJulianDate(julianDate: number): Date;
|
|
@@ -88,4 +86,4 @@ declare function getDateFromMJD(mjd: number): Date;
|
|
|
88
86
|
declare function getMJD2000(date: Date): number;
|
|
89
87
|
declare function getDateFromMJD2000(mjd2000: number): Date;
|
|
90
88
|
|
|
91
|
-
export { DAYS_MJD2000_MJD, DAYS_MJD_JULIAN, type HourCode, MILLISECONDS_GPS_TAI, MILLISECONDS_IN_DAY, MILLISECONDS_IN_HOUR, MILLISECONDS_IN_MINUTE, MILLISECONDS_IN_SECOND, MILLISECONDS_IN_WEEK, MILLISECONDS_TT_TAI, RINEX_CODES, SECONDS_IN_DAY, SECONDS_IN_HOUR, SECONDS_IN_MINUTE, SECONDS_IN_WEEK, START_BDS_TIME, START_GAL_TIME, START_GLO_LEAP, START_GPS_TIME,
|
|
89
|
+
export { DAYS_MJD2000_MJD, DAYS_MJD_JULIAN, type HourCode, MILLISECONDS_GPS_TAI, MILLISECONDS_IN_DAY, MILLISECONDS_IN_HOUR, MILLISECONDS_IN_MINUTE, MILLISECONDS_IN_SECOND, MILLISECONDS_IN_WEEK, MILLISECONDS_TT_TAI, RINEX_CODES, SECONDS_IN_DAY, SECONDS_IN_HOUR, SECONDS_IN_MINUTE, SECONDS_IN_WEEK, START_BDS_TIME, START_GAL_TIME, START_GLO_LEAP, START_GPS_TIME, START_JULIAN_TAI, START_MJD_UNIX_SECONDS, START_NTP_TIME, START_TAI_TIME, START_UNIX_TIME, type TimeDifference, getBdsTime, getDateFromBdsTime, getDateFromDayOfWeek, getDateFromDayOfYear, getDateFromGalTime, getDateFromGloN, getDateFromGpsData, getDateFromGpsTime, getDateFromHourCode, getDateFromJulianDate, getDateFromMJD, getDateFromMJD2000, getDateFromRINEX, getDateFromTai, getDateFromTimeOfDay, getDateFromTt, getDateFromUnixTime, getDateFromUtc, getDayOfWeek, getDayOfYear, getGalTime, getGloN4, getGloNA, getGpsLeap, getGpsTime, getHourCode, getHoursFromTimeDifference, getJulianDate, getLeap, getMJD, getMJD2000, getMinutesFromTimeDifference, getNtpTime, getRINEX, getSecondsFromTimeDifference, getTaiDate, getTimeDifference, getTimeDifferenceFromDays, getTimeDifferenceFromHours, getTimeDifferenceFromMinutes, getTimeDifferenceFromObject, getTimeDifferenceFromSeconds, getTimeOfDay, getTimeOfWeek, getTotalDaysFromTimeDifference, getTtDate, getUnixTime, getUtcDate, getWeekNumber, getWeekOfYear };
|
package/dist/index.d.ts
CHANGED
|
@@ -17,17 +17,14 @@ declare const MILLISECONDS_IN_MINUTE: number;
|
|
|
17
17
|
declare const MILLISECONDS_IN_SECOND: number;
|
|
18
18
|
declare const MILLISECONDS_TT_TAI: number;
|
|
19
19
|
declare const MILLISECONDS_GPS_TAI: number;
|
|
20
|
-
declare const START_LEAP_SECS_GPS: number;
|
|
21
20
|
declare const START_GPS_TIME: Date;
|
|
22
21
|
declare const START_GAL_TIME: Date;
|
|
23
22
|
declare const START_BDS_TIME: Date;
|
|
24
23
|
declare const START_UNIX_TIME: Date;
|
|
25
24
|
declare const START_NTP_TIME: Date;
|
|
26
25
|
declare const START_GLO_LEAP: Date;
|
|
27
|
-
declare const START_MJD2000_TIME: Date;
|
|
28
26
|
declare const START_TAI_TIME: Date;
|
|
29
27
|
declare const RINEX_CODES: HourCode[];
|
|
30
|
-
declare const START_JULIAN_CALENDAR_UNIX_SECONDS = 2440587.5;
|
|
31
28
|
declare const START_JULIAN_TAI = 2436204.5;
|
|
32
29
|
declare const DAYS_MJD_JULIAN = 2400000.5;
|
|
33
30
|
declare const DAYS_MJD2000_MJD = 51544.5;
|
|
@@ -54,10 +51,10 @@ declare function getDateFromUnixTime(unixTime: number): Date;
|
|
|
54
51
|
declare function getWeekNumber(date: Date): number;
|
|
55
52
|
declare function getTimeOfWeek(date: Date): number;
|
|
56
53
|
declare function getDateFromGpsData(weekNumber: number, timeOfWeek: number): Date;
|
|
57
|
-
declare function
|
|
58
|
-
declare function
|
|
59
|
-
declare function
|
|
60
|
-
declare function
|
|
54
|
+
declare function getTaiDate(date: Date): Date;
|
|
55
|
+
declare function getDateFromTai(tai_date: Date): Date;
|
|
56
|
+
declare function getTtDate(date: Date): Date;
|
|
57
|
+
declare function getDateFromTt(tt_date: Date): Date;
|
|
61
58
|
declare function getGloN4(date: Date): number;
|
|
62
59
|
declare function getGloNA(date: Date): number;
|
|
63
60
|
declare function getDateFromGloN(n4: number, na: number, tod: number): Date;
|
|
@@ -80,6 +77,7 @@ declare function getTimeDifferenceFromObject(timeDifferenceObject: TimeDifferenc
|
|
|
80
77
|
declare function getLeap(date: Date): number;
|
|
81
78
|
declare function getGpsLeap(date: Date): number;
|
|
82
79
|
declare function getUtcDate(date: Date): Date;
|
|
80
|
+
declare function getDateFromUtc(utc_date: Date): Date;
|
|
83
81
|
|
|
84
82
|
declare function getJulianDate(date: Date): number;
|
|
85
83
|
declare function getDateFromJulianDate(julianDate: number): Date;
|
|
@@ -88,4 +86,4 @@ declare function getDateFromMJD(mjd: number): Date;
|
|
|
88
86
|
declare function getMJD2000(date: Date): number;
|
|
89
87
|
declare function getDateFromMJD2000(mjd2000: number): Date;
|
|
90
88
|
|
|
91
|
-
export { DAYS_MJD2000_MJD, DAYS_MJD_JULIAN, type HourCode, MILLISECONDS_GPS_TAI, MILLISECONDS_IN_DAY, MILLISECONDS_IN_HOUR, MILLISECONDS_IN_MINUTE, MILLISECONDS_IN_SECOND, MILLISECONDS_IN_WEEK, MILLISECONDS_TT_TAI, RINEX_CODES, SECONDS_IN_DAY, SECONDS_IN_HOUR, SECONDS_IN_MINUTE, SECONDS_IN_WEEK, START_BDS_TIME, START_GAL_TIME, START_GLO_LEAP, START_GPS_TIME,
|
|
89
|
+
export { DAYS_MJD2000_MJD, DAYS_MJD_JULIAN, type HourCode, MILLISECONDS_GPS_TAI, MILLISECONDS_IN_DAY, MILLISECONDS_IN_HOUR, MILLISECONDS_IN_MINUTE, MILLISECONDS_IN_SECOND, MILLISECONDS_IN_WEEK, MILLISECONDS_TT_TAI, RINEX_CODES, SECONDS_IN_DAY, SECONDS_IN_HOUR, SECONDS_IN_MINUTE, SECONDS_IN_WEEK, START_BDS_TIME, START_GAL_TIME, START_GLO_LEAP, START_GPS_TIME, START_JULIAN_TAI, START_MJD_UNIX_SECONDS, START_NTP_TIME, START_TAI_TIME, START_UNIX_TIME, type TimeDifference, getBdsTime, getDateFromBdsTime, getDateFromDayOfWeek, getDateFromDayOfYear, getDateFromGalTime, getDateFromGloN, getDateFromGpsData, getDateFromGpsTime, getDateFromHourCode, getDateFromJulianDate, getDateFromMJD, getDateFromMJD2000, getDateFromRINEX, getDateFromTai, getDateFromTimeOfDay, getDateFromTt, getDateFromUnixTime, getDateFromUtc, getDayOfWeek, getDayOfYear, getGalTime, getGloN4, getGloNA, getGpsLeap, getGpsTime, getHourCode, getHoursFromTimeDifference, getJulianDate, getLeap, getMJD, getMJD2000, getMinutesFromTimeDifference, getNtpTime, getRINEX, getSecondsFromTimeDifference, getTaiDate, getTimeDifference, getTimeDifferenceFromDays, getTimeDifferenceFromHours, getTimeDifferenceFromMinutes, getTimeDifferenceFromObject, getTimeDifferenceFromSeconds, getTimeOfDay, getTimeOfWeek, getTotalDaysFromTimeDifference, getTtDate, getUnixTime, getUtcDate, getWeekNumber, getWeekOfYear };
|
package/dist/index.js
CHANGED
|
@@ -38,10 +38,7 @@ __export(src_exports, {
|
|
|
38
38
|
START_GAL_TIME: () => START_GAL_TIME,
|
|
39
39
|
START_GLO_LEAP: () => START_GLO_LEAP,
|
|
40
40
|
START_GPS_TIME: () => START_GPS_TIME,
|
|
41
|
-
START_JULIAN_CALENDAR_UNIX_SECONDS: () => START_JULIAN_CALENDAR_UNIX_SECONDS,
|
|
42
41
|
START_JULIAN_TAI: () => START_JULIAN_TAI,
|
|
43
|
-
START_LEAP_SECS_GPS: () => START_LEAP_SECS_GPS,
|
|
44
|
-
START_MJD2000_TIME: () => START_MJD2000_TIME,
|
|
45
42
|
START_MJD_UNIX_SECONDS: () => START_MJD_UNIX_SECONDS,
|
|
46
43
|
START_NTP_TIME: () => START_NTP_TIME,
|
|
47
44
|
START_TAI_TIME: () => START_TAI_TIME,
|
|
@@ -59,10 +56,11 @@ __export(src_exports, {
|
|
|
59
56
|
getDateFromMJD: () => getDateFromMJD,
|
|
60
57
|
getDateFromMJD2000: () => getDateFromMJD2000,
|
|
61
58
|
getDateFromRINEX: () => getDateFromRINEX,
|
|
62
|
-
|
|
63
|
-
getDateFromTT: () => getDateFromTT,
|
|
59
|
+
getDateFromTai: () => getDateFromTai,
|
|
64
60
|
getDateFromTimeOfDay: () => getDateFromTimeOfDay,
|
|
61
|
+
getDateFromTt: () => getDateFromTt,
|
|
65
62
|
getDateFromUnixTime: () => getDateFromUnixTime,
|
|
63
|
+
getDateFromUtc: () => getDateFromUtc,
|
|
66
64
|
getDayOfWeek: () => getDayOfWeek,
|
|
67
65
|
getDayOfYear: () => getDayOfYear,
|
|
68
66
|
getGalTime: () => getGalTime,
|
|
@@ -80,8 +78,7 @@ __export(src_exports, {
|
|
|
80
78
|
getNtpTime: () => getNtpTime,
|
|
81
79
|
getRINEX: () => getRINEX,
|
|
82
80
|
getSecondsFromTimeDifference: () => getSecondsFromTimeDifference,
|
|
83
|
-
|
|
84
|
-
getTTDate: () => getTTDate,
|
|
81
|
+
getTaiDate: () => getTaiDate,
|
|
85
82
|
getTimeDifference: () => getTimeDifference,
|
|
86
83
|
getTimeDifferenceFromDays: () => getTimeDifferenceFromDays,
|
|
87
84
|
getTimeDifferenceFromHours: () => getTimeDifferenceFromHours,
|
|
@@ -91,6 +88,7 @@ __export(src_exports, {
|
|
|
91
88
|
getTimeOfDay: () => getTimeOfDay,
|
|
92
89
|
getTimeOfWeek: () => getTimeOfWeek,
|
|
93
90
|
getTotalDaysFromTimeDifference: () => getTotalDaysFromTimeDifference,
|
|
91
|
+
getTtDate: () => getTtDate,
|
|
94
92
|
getUnixTime: () => getUnixTime,
|
|
95
93
|
getUtcDate: () => getUtcDate,
|
|
96
94
|
getWeekNumber: () => getWeekNumber,
|
|
@@ -110,14 +108,12 @@ var MILLISECONDS_IN_MINUTE = 6e4;
|
|
|
110
108
|
var MILLISECONDS_IN_SECOND = 1e3;
|
|
111
109
|
var MILLISECONDS_TT_TAI = 32184;
|
|
112
110
|
var MILLISECONDS_GPS_TAI = 19e3;
|
|
113
|
-
var START_LEAP_SECS_GPS = 19;
|
|
114
111
|
var START_GPS_TIME = /* @__PURE__ */ new Date("1980-01-06T00:00:00Z");
|
|
115
112
|
var START_GAL_TIME = /* @__PURE__ */ new Date("1999-08-22T00:00:00Z");
|
|
116
|
-
var START_BDS_TIME = /* @__PURE__ */ new Date("2006-01-01T00:00:
|
|
117
|
-
var START_UNIX_TIME = /* @__PURE__ */ new Date("
|
|
113
|
+
var START_BDS_TIME = /* @__PURE__ */ new Date("2006-01-01T00:00:13Z");
|
|
114
|
+
var START_UNIX_TIME = /* @__PURE__ */ new Date("1969-12-31T23:59:49Z");
|
|
118
115
|
var START_NTP_TIME = /* @__PURE__ */ new Date("1900-01-01T00:00:00Z");
|
|
119
116
|
var START_GLO_LEAP = /* @__PURE__ */ new Date("1996-01-01T00:00:00Z");
|
|
120
|
-
var START_MJD2000_TIME = /* @__PURE__ */ new Date("2000-01-01T00:00:00Z");
|
|
121
117
|
var START_TAI_TIME = /* @__PURE__ */ new Date("1957-12-31T23:59:41Z");
|
|
122
118
|
var RINEX_CODES = [
|
|
123
119
|
"a",
|
|
@@ -145,7 +141,6 @@ var RINEX_CODES = [
|
|
|
145
141
|
"w",
|
|
146
142
|
"x"
|
|
147
143
|
];
|
|
148
|
-
var START_JULIAN_CALENDAR_UNIX_SECONDS = 24405875e-1;
|
|
149
144
|
var START_JULIAN_TAI = 24362045e-1;
|
|
150
145
|
var DAYS_MJD_JULIAN = 24000005e-1;
|
|
151
146
|
var DAYS_MJD2000_MJD = 51544.5;
|
|
@@ -264,6 +259,98 @@ function getTimeDifferenceFromObject(timeDifferenceObject) {
|
|
|
264
259
|
return getTimeDifferenceFromSeconds(seconds) + getTimeDifferenceFromMinutes(minutes) + getTimeDifferenceFromHours(hours) + getTimeDifferenceFromDays(days);
|
|
265
260
|
}
|
|
266
261
|
|
|
262
|
+
// src/time/utc.ts
|
|
263
|
+
function getLeap(date) {
|
|
264
|
+
const ntp_time = getNtpTime(date);
|
|
265
|
+
const leapSecondsMap = {
|
|
266
|
+
2272060800: 10,
|
|
267
|
+
// 1 Jan 1972
|
|
268
|
+
2287785600: 11,
|
|
269
|
+
// 1 Jul 1972
|
|
270
|
+
2303683200: 12,
|
|
271
|
+
// 1 Jan 1973
|
|
272
|
+
2335219200: 13,
|
|
273
|
+
// 1 Jan 1974
|
|
274
|
+
2366755200: 14,
|
|
275
|
+
// 1 Jan 1975
|
|
276
|
+
2398291200: 15,
|
|
277
|
+
// 1 Jan 1976
|
|
278
|
+
2429913600: 16,
|
|
279
|
+
// 1 Jan 1977
|
|
280
|
+
2461449600: 17,
|
|
281
|
+
// 1 Jan 1978
|
|
282
|
+
2492985600: 18,
|
|
283
|
+
// 1 Jan 1979
|
|
284
|
+
2524521600: 19,
|
|
285
|
+
// 1 Jan 1980
|
|
286
|
+
2571782400: 20,
|
|
287
|
+
// 1 Jul 1981
|
|
288
|
+
2603318400: 21,
|
|
289
|
+
// 1 Jul 1982
|
|
290
|
+
2634854400: 22,
|
|
291
|
+
// 1 Jul 1983
|
|
292
|
+
2698012800: 23,
|
|
293
|
+
// 1 Jul 1985
|
|
294
|
+
2776982400: 24,
|
|
295
|
+
// 1 Jan 1988
|
|
296
|
+
2840140800: 25,
|
|
297
|
+
// 1 Jan 1990
|
|
298
|
+
2871676800: 26,
|
|
299
|
+
// 1 Jan 1991
|
|
300
|
+
2918937600: 27,
|
|
301
|
+
// 1 Jul 1992
|
|
302
|
+
2950473600: 28,
|
|
303
|
+
// 1 Jul 1993
|
|
304
|
+
2982009600: 29,
|
|
305
|
+
// 1 Jul 1994
|
|
306
|
+
3029443200: 30,
|
|
307
|
+
// 1 Jan 1996
|
|
308
|
+
3076704e3: 31,
|
|
309
|
+
// 1 Jul 1997
|
|
310
|
+
3124137600: 32,
|
|
311
|
+
// 1 Jan 1999
|
|
312
|
+
3345062400: 33,
|
|
313
|
+
// 1 Jan 2006
|
|
314
|
+
3439756800: 34,
|
|
315
|
+
// 1 Jan 2009
|
|
316
|
+
3550089600: 35,
|
|
317
|
+
// 1 Jul 2012
|
|
318
|
+
3644697600: 36,
|
|
319
|
+
// 1 Jul 2015
|
|
320
|
+
3692217600: 37
|
|
321
|
+
// 1 Jan 2017
|
|
322
|
+
};
|
|
323
|
+
for (const [timestamp, leapSeconds] of Object.entries(
|
|
324
|
+
leapSecondsMap
|
|
325
|
+
).reverse()) {
|
|
326
|
+
if (ntp_time / MILLISECONDS_IN_SECOND - leapSeconds >= Number(timestamp)) {
|
|
327
|
+
return leapSeconds;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
return 8;
|
|
331
|
+
}
|
|
332
|
+
function getGpsLeap(date) {
|
|
333
|
+
const leap_seconds = getLeap(date);
|
|
334
|
+
if (leap_seconds < 0)
|
|
335
|
+
return 0;
|
|
336
|
+
return leap_seconds - 19;
|
|
337
|
+
}
|
|
338
|
+
function getUtcDate(date) {
|
|
339
|
+
const tai_date = getTaiDate(date);
|
|
340
|
+
const leap_seconds = getLeap(date);
|
|
341
|
+
return new Date(tai_date.getTime() - leap_seconds * MILLISECONDS_IN_SECOND);
|
|
342
|
+
}
|
|
343
|
+
function getDateFromUtc(utc_date) {
|
|
344
|
+
const tai_date = new Date(
|
|
345
|
+
utc_date.getTime() + getLeap(utc_date) * MILLISECONDS_IN_SECOND
|
|
346
|
+
);
|
|
347
|
+
const leap_seconds = getLeap(getDateFromTai(tai_date));
|
|
348
|
+
const gps_date = getDateFromTai(
|
|
349
|
+
new Date(utc_date.getTime() + leap_seconds * MILLISECONDS_IN_SECOND)
|
|
350
|
+
);
|
|
351
|
+
return gps_date;
|
|
352
|
+
}
|
|
353
|
+
|
|
267
354
|
// src/time/gnss.ts
|
|
268
355
|
function getGpsTime(date) {
|
|
269
356
|
return date.getTime() - START_GPS_TIME.getTime();
|
|
@@ -284,10 +371,11 @@ function getDateFromBdsTime(bdsTime) {
|
|
|
284
371
|
return new Date(bdsTime + START_BDS_TIME.getTime());
|
|
285
372
|
}
|
|
286
373
|
function getUnixTime(date) {
|
|
287
|
-
|
|
374
|
+
const utc_date = getUtcDate(date);
|
|
375
|
+
return utc_date.getTime();
|
|
288
376
|
}
|
|
289
377
|
function getDateFromUnixTime(unixTime) {
|
|
290
|
-
return new Date(unixTime
|
|
378
|
+
return getDateFromUtc(new Date(unixTime));
|
|
291
379
|
}
|
|
292
380
|
function getWeekNumber(date) {
|
|
293
381
|
return Math.floor(getGpsTime(date) / MILLISECONDS_IN_WEEK);
|
|
@@ -300,16 +388,16 @@ function getDateFromGpsData(weekNumber, timeOfWeek) {
|
|
|
300
388
|
weekNumber * MILLISECONDS_IN_WEEK + timeOfWeek * MILLISECONDS_IN_SECOND + START_GPS_TIME.getTime()
|
|
301
389
|
);
|
|
302
390
|
}
|
|
303
|
-
function
|
|
391
|
+
function getTaiDate(date) {
|
|
304
392
|
return new Date(date.getTime() + MILLISECONDS_GPS_TAI);
|
|
305
393
|
}
|
|
306
|
-
function
|
|
394
|
+
function getDateFromTai(tai_date) {
|
|
307
395
|
return new Date(tai_date.getTime() - MILLISECONDS_GPS_TAI);
|
|
308
396
|
}
|
|
309
|
-
function
|
|
397
|
+
function getTtDate(date) {
|
|
310
398
|
return new Date(date.getTime() + MILLISECONDS_GPS_TAI + MILLISECONDS_TT_TAI);
|
|
311
399
|
}
|
|
312
|
-
function
|
|
400
|
+
function getDateFromTt(tt_date) {
|
|
313
401
|
return new Date(
|
|
314
402
|
tt_date.getTime() - MILLISECONDS_GPS_TAI - MILLISECONDS_TT_TAI
|
|
315
403
|
);
|
|
@@ -332,7 +420,7 @@ function getDateFromGloN(n4, na, tod) {
|
|
|
332
420
|
return date;
|
|
333
421
|
}
|
|
334
422
|
function getNtpTime(date) {
|
|
335
|
-
return
|
|
423
|
+
return getTaiDate(date).getTime() - START_NTP_TIME.getTime();
|
|
336
424
|
}
|
|
337
425
|
|
|
338
426
|
// src/time/rinex.ts
|
|
@@ -364,88 +452,6 @@ function getDateFromRINEX(rinex) {
|
|
|
364
452
|
return date;
|
|
365
453
|
}
|
|
366
454
|
|
|
367
|
-
// src/time/utc.ts
|
|
368
|
-
function getLeap(date) {
|
|
369
|
-
const ntp_time = getNtpTime(date);
|
|
370
|
-
const leapSecondsMap = {
|
|
371
|
-
2272060800: 10,
|
|
372
|
-
// 1 Jan 1972
|
|
373
|
-
2287785600: 11,
|
|
374
|
-
// 1 Jul 1972
|
|
375
|
-
2303683200: 12,
|
|
376
|
-
// 1 Jan 1973
|
|
377
|
-
2335219200: 13,
|
|
378
|
-
// 1 Jan 1974
|
|
379
|
-
2366755200: 14,
|
|
380
|
-
// 1 Jan 1975
|
|
381
|
-
2398291200: 15,
|
|
382
|
-
// 1 Jan 1976
|
|
383
|
-
2429913600: 16,
|
|
384
|
-
// 1 Jan 1977
|
|
385
|
-
2461449600: 17,
|
|
386
|
-
// 1 Jan 1978
|
|
387
|
-
2492985600: 18,
|
|
388
|
-
// 1 Jan 1979
|
|
389
|
-
2524521600: 19,
|
|
390
|
-
// 1 Jan 1980
|
|
391
|
-
2571782400: 20,
|
|
392
|
-
// 1 Jul 1981
|
|
393
|
-
2603318400: 21,
|
|
394
|
-
// 1 Jul 1982
|
|
395
|
-
2634854400: 22,
|
|
396
|
-
// 1 Jul 1983
|
|
397
|
-
2698012800: 23,
|
|
398
|
-
// 1 Jul 1985
|
|
399
|
-
2776982400: 24,
|
|
400
|
-
// 1 Jan 1988
|
|
401
|
-
2840140800: 25,
|
|
402
|
-
// 1 Jan 1990
|
|
403
|
-
2871676800: 26,
|
|
404
|
-
// 1 Jan 1991
|
|
405
|
-
2918937600: 27,
|
|
406
|
-
// 1 Jul 1992
|
|
407
|
-
2950473600: 28,
|
|
408
|
-
// 1 Jul 1993
|
|
409
|
-
2982009600: 29,
|
|
410
|
-
// 1 Jul 1994
|
|
411
|
-
3029443200: 30,
|
|
412
|
-
// 1 Jan 1996
|
|
413
|
-
3076704e3: 31,
|
|
414
|
-
// 1 Jul 1997
|
|
415
|
-
3124137600: 32,
|
|
416
|
-
// 1 Jan 1999
|
|
417
|
-
3345062400: 33,
|
|
418
|
-
// 1 Jan 2006
|
|
419
|
-
3439756800: 34,
|
|
420
|
-
// 1 Jan 2009
|
|
421
|
-
3550089600: 35,
|
|
422
|
-
// 1 Jul 2012
|
|
423
|
-
3644697600: 36,
|
|
424
|
-
// 1 Jul 2015
|
|
425
|
-
3692217600: 37
|
|
426
|
-
// 1 Jan 2017
|
|
427
|
-
};
|
|
428
|
-
for (const [timestamp, leapSeconds] of Object.entries(
|
|
429
|
-
leapSecondsMap
|
|
430
|
-
).reverse()) {
|
|
431
|
-
if (ntp_time / MILLISECONDS_IN_SECOND - leapSeconds >= Number(timestamp)) {
|
|
432
|
-
return leapSeconds;
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
return 0;
|
|
436
|
-
}
|
|
437
|
-
function getGpsLeap(date) {
|
|
438
|
-
const leap_seconds = getLeap(date);
|
|
439
|
-
if (leap_seconds < 0)
|
|
440
|
-
return 0;
|
|
441
|
-
return leap_seconds - 19;
|
|
442
|
-
}
|
|
443
|
-
function getUtcDate(date) {
|
|
444
|
-
const tai_date = getTAIDate(date);
|
|
445
|
-
const leap_seconds = getLeap(date);
|
|
446
|
-
return new Date(tai_date.getTime() - leap_seconds * MILLISECONDS_IN_SECOND);
|
|
447
|
-
}
|
|
448
|
-
|
|
449
455
|
// src/time/julian.ts
|
|
450
456
|
function getJulianDate(date) {
|
|
451
457
|
return (date.getTime() - START_TAI_TIME.getTime()) / MILLISECONDS_IN_DAY + START_JULIAN_TAI;
|
|
@@ -487,10 +493,7 @@ function getDateFromMJD2000(mjd2000) {
|
|
|
487
493
|
START_GAL_TIME,
|
|
488
494
|
START_GLO_LEAP,
|
|
489
495
|
START_GPS_TIME,
|
|
490
|
-
START_JULIAN_CALENDAR_UNIX_SECONDS,
|
|
491
496
|
START_JULIAN_TAI,
|
|
492
|
-
START_LEAP_SECS_GPS,
|
|
493
|
-
START_MJD2000_TIME,
|
|
494
497
|
START_MJD_UNIX_SECONDS,
|
|
495
498
|
START_NTP_TIME,
|
|
496
499
|
START_TAI_TIME,
|
|
@@ -508,10 +511,11 @@ function getDateFromMJD2000(mjd2000) {
|
|
|
508
511
|
getDateFromMJD,
|
|
509
512
|
getDateFromMJD2000,
|
|
510
513
|
getDateFromRINEX,
|
|
511
|
-
|
|
512
|
-
getDateFromTT,
|
|
514
|
+
getDateFromTai,
|
|
513
515
|
getDateFromTimeOfDay,
|
|
516
|
+
getDateFromTt,
|
|
514
517
|
getDateFromUnixTime,
|
|
518
|
+
getDateFromUtc,
|
|
515
519
|
getDayOfWeek,
|
|
516
520
|
getDayOfYear,
|
|
517
521
|
getGalTime,
|
|
@@ -529,8 +533,7 @@ function getDateFromMJD2000(mjd2000) {
|
|
|
529
533
|
getNtpTime,
|
|
530
534
|
getRINEX,
|
|
531
535
|
getSecondsFromTimeDifference,
|
|
532
|
-
|
|
533
|
-
getTTDate,
|
|
536
|
+
getTaiDate,
|
|
534
537
|
getTimeDifference,
|
|
535
538
|
getTimeDifferenceFromDays,
|
|
536
539
|
getTimeDifferenceFromHours,
|
|
@@ -540,6 +543,7 @@ function getDateFromMJD2000(mjd2000) {
|
|
|
540
543
|
getTimeOfDay,
|
|
541
544
|
getTimeOfWeek,
|
|
542
545
|
getTotalDaysFromTimeDifference,
|
|
546
|
+
getTtDate,
|
|
543
547
|
getUnixTime,
|
|
544
548
|
getUtcDate,
|
|
545
549
|
getWeekNumber,
|
package/dist/index.mjs
CHANGED
|
@@ -10,14 +10,12 @@ var MILLISECONDS_IN_MINUTE = 6e4;
|
|
|
10
10
|
var MILLISECONDS_IN_SECOND = 1e3;
|
|
11
11
|
var MILLISECONDS_TT_TAI = 32184;
|
|
12
12
|
var MILLISECONDS_GPS_TAI = 19e3;
|
|
13
|
-
var START_LEAP_SECS_GPS = 19;
|
|
14
13
|
var START_GPS_TIME = /* @__PURE__ */ new Date("1980-01-06T00:00:00Z");
|
|
15
14
|
var START_GAL_TIME = /* @__PURE__ */ new Date("1999-08-22T00:00:00Z");
|
|
16
|
-
var START_BDS_TIME = /* @__PURE__ */ new Date("2006-01-01T00:00:
|
|
17
|
-
var START_UNIX_TIME = /* @__PURE__ */ new Date("
|
|
15
|
+
var START_BDS_TIME = /* @__PURE__ */ new Date("2006-01-01T00:00:13Z");
|
|
16
|
+
var START_UNIX_TIME = /* @__PURE__ */ new Date("1969-12-31T23:59:49Z");
|
|
18
17
|
var START_NTP_TIME = /* @__PURE__ */ new Date("1900-01-01T00:00:00Z");
|
|
19
18
|
var START_GLO_LEAP = /* @__PURE__ */ new Date("1996-01-01T00:00:00Z");
|
|
20
|
-
var START_MJD2000_TIME = /* @__PURE__ */ new Date("2000-01-01T00:00:00Z");
|
|
21
19
|
var START_TAI_TIME = /* @__PURE__ */ new Date("1957-12-31T23:59:41Z");
|
|
22
20
|
var RINEX_CODES = [
|
|
23
21
|
"a",
|
|
@@ -45,7 +43,6 @@ var RINEX_CODES = [
|
|
|
45
43
|
"w",
|
|
46
44
|
"x"
|
|
47
45
|
];
|
|
48
|
-
var START_JULIAN_CALENDAR_UNIX_SECONDS = 24405875e-1;
|
|
49
46
|
var START_JULIAN_TAI = 24362045e-1;
|
|
50
47
|
var DAYS_MJD_JULIAN = 24000005e-1;
|
|
51
48
|
var DAYS_MJD2000_MJD = 51544.5;
|
|
@@ -164,6 +161,98 @@ function getTimeDifferenceFromObject(timeDifferenceObject) {
|
|
|
164
161
|
return getTimeDifferenceFromSeconds(seconds) + getTimeDifferenceFromMinutes(minutes) + getTimeDifferenceFromHours(hours) + getTimeDifferenceFromDays(days);
|
|
165
162
|
}
|
|
166
163
|
|
|
164
|
+
// src/time/utc.ts
|
|
165
|
+
function getLeap(date) {
|
|
166
|
+
const ntp_time = getNtpTime(date);
|
|
167
|
+
const leapSecondsMap = {
|
|
168
|
+
2272060800: 10,
|
|
169
|
+
// 1 Jan 1972
|
|
170
|
+
2287785600: 11,
|
|
171
|
+
// 1 Jul 1972
|
|
172
|
+
2303683200: 12,
|
|
173
|
+
// 1 Jan 1973
|
|
174
|
+
2335219200: 13,
|
|
175
|
+
// 1 Jan 1974
|
|
176
|
+
2366755200: 14,
|
|
177
|
+
// 1 Jan 1975
|
|
178
|
+
2398291200: 15,
|
|
179
|
+
// 1 Jan 1976
|
|
180
|
+
2429913600: 16,
|
|
181
|
+
// 1 Jan 1977
|
|
182
|
+
2461449600: 17,
|
|
183
|
+
// 1 Jan 1978
|
|
184
|
+
2492985600: 18,
|
|
185
|
+
// 1 Jan 1979
|
|
186
|
+
2524521600: 19,
|
|
187
|
+
// 1 Jan 1980
|
|
188
|
+
2571782400: 20,
|
|
189
|
+
// 1 Jul 1981
|
|
190
|
+
2603318400: 21,
|
|
191
|
+
// 1 Jul 1982
|
|
192
|
+
2634854400: 22,
|
|
193
|
+
// 1 Jul 1983
|
|
194
|
+
2698012800: 23,
|
|
195
|
+
// 1 Jul 1985
|
|
196
|
+
2776982400: 24,
|
|
197
|
+
// 1 Jan 1988
|
|
198
|
+
2840140800: 25,
|
|
199
|
+
// 1 Jan 1990
|
|
200
|
+
2871676800: 26,
|
|
201
|
+
// 1 Jan 1991
|
|
202
|
+
2918937600: 27,
|
|
203
|
+
// 1 Jul 1992
|
|
204
|
+
2950473600: 28,
|
|
205
|
+
// 1 Jul 1993
|
|
206
|
+
2982009600: 29,
|
|
207
|
+
// 1 Jul 1994
|
|
208
|
+
3029443200: 30,
|
|
209
|
+
// 1 Jan 1996
|
|
210
|
+
3076704e3: 31,
|
|
211
|
+
// 1 Jul 1997
|
|
212
|
+
3124137600: 32,
|
|
213
|
+
// 1 Jan 1999
|
|
214
|
+
3345062400: 33,
|
|
215
|
+
// 1 Jan 2006
|
|
216
|
+
3439756800: 34,
|
|
217
|
+
// 1 Jan 2009
|
|
218
|
+
3550089600: 35,
|
|
219
|
+
// 1 Jul 2012
|
|
220
|
+
3644697600: 36,
|
|
221
|
+
// 1 Jul 2015
|
|
222
|
+
3692217600: 37
|
|
223
|
+
// 1 Jan 2017
|
|
224
|
+
};
|
|
225
|
+
for (const [timestamp, leapSeconds] of Object.entries(
|
|
226
|
+
leapSecondsMap
|
|
227
|
+
).reverse()) {
|
|
228
|
+
if (ntp_time / MILLISECONDS_IN_SECOND - leapSeconds >= Number(timestamp)) {
|
|
229
|
+
return leapSeconds;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
return 8;
|
|
233
|
+
}
|
|
234
|
+
function getGpsLeap(date) {
|
|
235
|
+
const leap_seconds = getLeap(date);
|
|
236
|
+
if (leap_seconds < 0)
|
|
237
|
+
return 0;
|
|
238
|
+
return leap_seconds - 19;
|
|
239
|
+
}
|
|
240
|
+
function getUtcDate(date) {
|
|
241
|
+
const tai_date = getTaiDate(date);
|
|
242
|
+
const leap_seconds = getLeap(date);
|
|
243
|
+
return new Date(tai_date.getTime() - leap_seconds * MILLISECONDS_IN_SECOND);
|
|
244
|
+
}
|
|
245
|
+
function getDateFromUtc(utc_date) {
|
|
246
|
+
const tai_date = new Date(
|
|
247
|
+
utc_date.getTime() + getLeap(utc_date) * MILLISECONDS_IN_SECOND
|
|
248
|
+
);
|
|
249
|
+
const leap_seconds = getLeap(getDateFromTai(tai_date));
|
|
250
|
+
const gps_date = getDateFromTai(
|
|
251
|
+
new Date(utc_date.getTime() + leap_seconds * MILLISECONDS_IN_SECOND)
|
|
252
|
+
);
|
|
253
|
+
return gps_date;
|
|
254
|
+
}
|
|
255
|
+
|
|
167
256
|
// src/time/gnss.ts
|
|
168
257
|
function getGpsTime(date) {
|
|
169
258
|
return date.getTime() - START_GPS_TIME.getTime();
|
|
@@ -184,10 +273,11 @@ function getDateFromBdsTime(bdsTime) {
|
|
|
184
273
|
return new Date(bdsTime + START_BDS_TIME.getTime());
|
|
185
274
|
}
|
|
186
275
|
function getUnixTime(date) {
|
|
187
|
-
|
|
276
|
+
const utc_date = getUtcDate(date);
|
|
277
|
+
return utc_date.getTime();
|
|
188
278
|
}
|
|
189
279
|
function getDateFromUnixTime(unixTime) {
|
|
190
|
-
return new Date(unixTime
|
|
280
|
+
return getDateFromUtc(new Date(unixTime));
|
|
191
281
|
}
|
|
192
282
|
function getWeekNumber(date) {
|
|
193
283
|
return Math.floor(getGpsTime(date) / MILLISECONDS_IN_WEEK);
|
|
@@ -200,16 +290,16 @@ function getDateFromGpsData(weekNumber, timeOfWeek) {
|
|
|
200
290
|
weekNumber * MILLISECONDS_IN_WEEK + timeOfWeek * MILLISECONDS_IN_SECOND + START_GPS_TIME.getTime()
|
|
201
291
|
);
|
|
202
292
|
}
|
|
203
|
-
function
|
|
293
|
+
function getTaiDate(date) {
|
|
204
294
|
return new Date(date.getTime() + MILLISECONDS_GPS_TAI);
|
|
205
295
|
}
|
|
206
|
-
function
|
|
296
|
+
function getDateFromTai(tai_date) {
|
|
207
297
|
return new Date(tai_date.getTime() - MILLISECONDS_GPS_TAI);
|
|
208
298
|
}
|
|
209
|
-
function
|
|
299
|
+
function getTtDate(date) {
|
|
210
300
|
return new Date(date.getTime() + MILLISECONDS_GPS_TAI + MILLISECONDS_TT_TAI);
|
|
211
301
|
}
|
|
212
|
-
function
|
|
302
|
+
function getDateFromTt(tt_date) {
|
|
213
303
|
return new Date(
|
|
214
304
|
tt_date.getTime() - MILLISECONDS_GPS_TAI - MILLISECONDS_TT_TAI
|
|
215
305
|
);
|
|
@@ -232,7 +322,7 @@ function getDateFromGloN(n4, na, tod) {
|
|
|
232
322
|
return date;
|
|
233
323
|
}
|
|
234
324
|
function getNtpTime(date) {
|
|
235
|
-
return
|
|
325
|
+
return getTaiDate(date).getTime() - START_NTP_TIME.getTime();
|
|
236
326
|
}
|
|
237
327
|
|
|
238
328
|
// src/time/rinex.ts
|
|
@@ -264,88 +354,6 @@ function getDateFromRINEX(rinex) {
|
|
|
264
354
|
return date;
|
|
265
355
|
}
|
|
266
356
|
|
|
267
|
-
// src/time/utc.ts
|
|
268
|
-
function getLeap(date) {
|
|
269
|
-
const ntp_time = getNtpTime(date);
|
|
270
|
-
const leapSecondsMap = {
|
|
271
|
-
2272060800: 10,
|
|
272
|
-
// 1 Jan 1972
|
|
273
|
-
2287785600: 11,
|
|
274
|
-
// 1 Jul 1972
|
|
275
|
-
2303683200: 12,
|
|
276
|
-
// 1 Jan 1973
|
|
277
|
-
2335219200: 13,
|
|
278
|
-
// 1 Jan 1974
|
|
279
|
-
2366755200: 14,
|
|
280
|
-
// 1 Jan 1975
|
|
281
|
-
2398291200: 15,
|
|
282
|
-
// 1 Jan 1976
|
|
283
|
-
2429913600: 16,
|
|
284
|
-
// 1 Jan 1977
|
|
285
|
-
2461449600: 17,
|
|
286
|
-
// 1 Jan 1978
|
|
287
|
-
2492985600: 18,
|
|
288
|
-
// 1 Jan 1979
|
|
289
|
-
2524521600: 19,
|
|
290
|
-
// 1 Jan 1980
|
|
291
|
-
2571782400: 20,
|
|
292
|
-
// 1 Jul 1981
|
|
293
|
-
2603318400: 21,
|
|
294
|
-
// 1 Jul 1982
|
|
295
|
-
2634854400: 22,
|
|
296
|
-
// 1 Jul 1983
|
|
297
|
-
2698012800: 23,
|
|
298
|
-
// 1 Jul 1985
|
|
299
|
-
2776982400: 24,
|
|
300
|
-
// 1 Jan 1988
|
|
301
|
-
2840140800: 25,
|
|
302
|
-
// 1 Jan 1990
|
|
303
|
-
2871676800: 26,
|
|
304
|
-
// 1 Jan 1991
|
|
305
|
-
2918937600: 27,
|
|
306
|
-
// 1 Jul 1992
|
|
307
|
-
2950473600: 28,
|
|
308
|
-
// 1 Jul 1993
|
|
309
|
-
2982009600: 29,
|
|
310
|
-
// 1 Jul 1994
|
|
311
|
-
3029443200: 30,
|
|
312
|
-
// 1 Jan 1996
|
|
313
|
-
3076704e3: 31,
|
|
314
|
-
// 1 Jul 1997
|
|
315
|
-
3124137600: 32,
|
|
316
|
-
// 1 Jan 1999
|
|
317
|
-
3345062400: 33,
|
|
318
|
-
// 1 Jan 2006
|
|
319
|
-
3439756800: 34,
|
|
320
|
-
// 1 Jan 2009
|
|
321
|
-
3550089600: 35,
|
|
322
|
-
// 1 Jul 2012
|
|
323
|
-
3644697600: 36,
|
|
324
|
-
// 1 Jul 2015
|
|
325
|
-
3692217600: 37
|
|
326
|
-
// 1 Jan 2017
|
|
327
|
-
};
|
|
328
|
-
for (const [timestamp, leapSeconds] of Object.entries(
|
|
329
|
-
leapSecondsMap
|
|
330
|
-
).reverse()) {
|
|
331
|
-
if (ntp_time / MILLISECONDS_IN_SECOND - leapSeconds >= Number(timestamp)) {
|
|
332
|
-
return leapSeconds;
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
return 0;
|
|
336
|
-
}
|
|
337
|
-
function getGpsLeap(date) {
|
|
338
|
-
const leap_seconds = getLeap(date);
|
|
339
|
-
if (leap_seconds < 0)
|
|
340
|
-
return 0;
|
|
341
|
-
return leap_seconds - 19;
|
|
342
|
-
}
|
|
343
|
-
function getUtcDate(date) {
|
|
344
|
-
const tai_date = getTAIDate(date);
|
|
345
|
-
const leap_seconds = getLeap(date);
|
|
346
|
-
return new Date(tai_date.getTime() - leap_seconds * MILLISECONDS_IN_SECOND);
|
|
347
|
-
}
|
|
348
|
-
|
|
349
357
|
// src/time/julian.ts
|
|
350
358
|
function getJulianDate(date) {
|
|
351
359
|
return (date.getTime() - START_TAI_TIME.getTime()) / MILLISECONDS_IN_DAY + START_JULIAN_TAI;
|
|
@@ -386,10 +394,7 @@ export {
|
|
|
386
394
|
START_GAL_TIME,
|
|
387
395
|
START_GLO_LEAP,
|
|
388
396
|
START_GPS_TIME,
|
|
389
|
-
START_JULIAN_CALENDAR_UNIX_SECONDS,
|
|
390
397
|
START_JULIAN_TAI,
|
|
391
|
-
START_LEAP_SECS_GPS,
|
|
392
|
-
START_MJD2000_TIME,
|
|
393
398
|
START_MJD_UNIX_SECONDS,
|
|
394
399
|
START_NTP_TIME,
|
|
395
400
|
START_TAI_TIME,
|
|
@@ -407,10 +412,11 @@ export {
|
|
|
407
412
|
getDateFromMJD,
|
|
408
413
|
getDateFromMJD2000,
|
|
409
414
|
getDateFromRINEX,
|
|
410
|
-
|
|
411
|
-
getDateFromTT,
|
|
415
|
+
getDateFromTai,
|
|
412
416
|
getDateFromTimeOfDay,
|
|
417
|
+
getDateFromTt,
|
|
413
418
|
getDateFromUnixTime,
|
|
419
|
+
getDateFromUtc,
|
|
414
420
|
getDayOfWeek,
|
|
415
421
|
getDayOfYear,
|
|
416
422
|
getGalTime,
|
|
@@ -428,8 +434,7 @@ export {
|
|
|
428
434
|
getNtpTime,
|
|
429
435
|
getRINEX,
|
|
430
436
|
getSecondsFromTimeDifference,
|
|
431
|
-
|
|
432
|
-
getTTDate,
|
|
437
|
+
getTaiDate,
|
|
433
438
|
getTimeDifference,
|
|
434
439
|
getTimeDifferenceFromDays,
|
|
435
440
|
getTimeDifferenceFromHours,
|
|
@@ -439,6 +444,7 @@ export {
|
|
|
439
444
|
getTimeOfDay,
|
|
440
445
|
getTimeOfWeek,
|
|
441
446
|
getTotalDaysFromTimeDifference,
|
|
447
|
+
getTtDate,
|
|
442
448
|
getUnixTime,
|
|
443
449
|
getUtcDate,
|
|
444
450
|
getWeekNumber,
|
package/package.json
CHANGED
package/test/gnss-scales.test.js
CHANGED
|
@@ -7,10 +7,12 @@ const {
|
|
|
7
7
|
getDateFromBdsTime,
|
|
8
8
|
getUnixTime,
|
|
9
9
|
getDateFromUnixTime,
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
getTaiDate,
|
|
11
|
+
getTtDate,
|
|
12
|
+
getDateFromTai,
|
|
13
|
+
getDateFromTt,
|
|
14
|
+
getWeekNumber,
|
|
15
|
+
getDateFromGpsData,
|
|
14
16
|
} = require('../src/index');
|
|
15
17
|
|
|
16
18
|
test('getGpsTime', () => {
|
|
@@ -18,61 +20,76 @@ test('getGpsTime', () => {
|
|
|
18
20
|
expect(gps_time).toBe(0);
|
|
19
21
|
});
|
|
20
22
|
|
|
21
|
-
test('
|
|
22
|
-
const
|
|
23
|
-
expect(
|
|
23
|
+
test('getDateFromGpsTime', () => {
|
|
24
|
+
const date = getDateFromGpsTime(0);
|
|
25
|
+
expect(date.getTime()).toBe(new Date('1980-01-06T00:00:00Z').getTime());
|
|
24
26
|
});
|
|
25
27
|
|
|
26
|
-
test('
|
|
27
|
-
const
|
|
28
|
-
expect(
|
|
28
|
+
test('getWeekNumber', () => {
|
|
29
|
+
const week_no = getWeekNumber(new Date('1980-01-06T00:00:00Z'));
|
|
30
|
+
expect(week_no).toBe(0);
|
|
29
31
|
});
|
|
30
32
|
|
|
31
|
-
test('
|
|
32
|
-
const
|
|
33
|
-
expect(
|
|
33
|
+
test('getTimeOfWeek', () => {
|
|
34
|
+
const tow = getWeekNumber(new Date('1980-01-06T00:00:00Z'));
|
|
35
|
+
expect(tow).toBe(0);
|
|
34
36
|
});
|
|
35
37
|
|
|
36
|
-
test('
|
|
37
|
-
const date =
|
|
38
|
+
test('getDateFromGpsData', () => {
|
|
39
|
+
const date = getDateFromGpsData(0, 0);
|
|
38
40
|
expect(date.getTime()).toBe(new Date('1980-01-06T00:00:00Z').getTime());
|
|
39
41
|
});
|
|
40
42
|
|
|
43
|
+
test('getGalTime', () => {
|
|
44
|
+
const gal_time = getGalTime(new Date('1999-08-22T00:00:00Z'));
|
|
45
|
+
expect(gal_time).toBe(0);
|
|
46
|
+
});
|
|
47
|
+
|
|
41
48
|
test('getDateFromGalTime', () => {
|
|
42
49
|
const date = getDateFromGalTime(0);
|
|
43
50
|
expect(date.getTime()).toBe(new Date('1999-08-22T00:00:00Z').getTime());
|
|
44
51
|
});
|
|
45
52
|
|
|
53
|
+
test('getBdsTime', () => {
|
|
54
|
+
const bds_time = getBdsTime(new Date('2006-01-01T00:00:13Z'));
|
|
55
|
+
expect(bds_time).toBe(0);
|
|
56
|
+
});
|
|
57
|
+
|
|
46
58
|
test('getDateFromBdsTime', () => {
|
|
47
59
|
const date = getDateFromBdsTime(0);
|
|
48
|
-
expect(date.getTime()).toBe(new Date('2006-01-01T00:00:
|
|
60
|
+
expect(date.getTime()).toBe(new Date('2006-01-01T00:00:13Z').getTime());
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
test('getUnixTime', () => {
|
|
64
|
+
const unix_time = getUnixTime(new Date('2025-01-01T00:00:18Z'));
|
|
65
|
+
expect(unix_time).toBe(1735689600000);
|
|
49
66
|
});
|
|
50
67
|
|
|
51
68
|
test('getDateFromUnixTime', () => {
|
|
52
69
|
const date = getDateFromUnixTime(0);
|
|
53
|
-
expect(date.
|
|
70
|
+
expect(date.toISOString()).toBe('1969-12-31T23:59:49.000Z');
|
|
54
71
|
});
|
|
55
72
|
|
|
56
|
-
test('
|
|
73
|
+
test('getTaiDate', () => {
|
|
57
74
|
const date = getDateFromGpsTime(0);
|
|
58
|
-
const tai_date =
|
|
75
|
+
const tai_date = getTaiDate(date);
|
|
59
76
|
expect(tai_date.getTime()).toBe(new Date('1980-01-06T00:00:19Z').getTime());
|
|
60
77
|
});
|
|
61
78
|
|
|
62
|
-
test('
|
|
63
|
-
const date =
|
|
79
|
+
test('getDateFromTai', () => {
|
|
80
|
+
const date = getDateFromTai(new Date('1980-01-06T00:00:19Z'));
|
|
64
81
|
expect(getGpsTime(date)).toBe(0);
|
|
65
82
|
});
|
|
66
83
|
|
|
67
|
-
test('
|
|
84
|
+
test('getTtDate', () => {
|
|
68
85
|
const date = getDateFromGpsTime(0);
|
|
69
|
-
const tt_date =
|
|
86
|
+
const tt_date = getTtDate(date);
|
|
70
87
|
expect(tt_date.getTime()).toBe(
|
|
71
88
|
new Date('1980-01-06T00:00:51.184Z').getTime()
|
|
72
89
|
);
|
|
73
90
|
});
|
|
74
91
|
|
|
75
|
-
test('
|
|
76
|
-
const date =
|
|
92
|
+
test('getDateFromTt', () => {
|
|
93
|
+
const date = getDateFromTt(new Date('1980-01-06T00:00:51.184Z'));
|
|
77
94
|
expect(getGpsTime(date)).toBe(0);
|
|
78
95
|
});
|
package/test/test.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// To run: npx tsc && node test/test.js
|
|
2
|
+
|
|
3
|
+
const { getTaiDate, getDateFromUtc } = require('../dist/index');
|
|
4
|
+
|
|
5
|
+
const utc_date = new Date('2017-01-01T00:00:01.000Z');
|
|
6
|
+
// const utc_date = new Date('2016-12-31T23:59:59.000Z');
|
|
7
|
+
const gps_date = getDateFromUtc(utc_date);
|
|
8
|
+
|
|
9
|
+
console.log('TAI Date:', getTaiDate(gps_date).toISOString());
|
|
10
|
+
console.log('UTC Date:', utc_date.toISOString());
|
|
11
|
+
console.log('GPS Date:', gps_date.toISOString());
|
package/test/utc.test.js
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
const {
|
|
1
|
+
const {
|
|
2
|
+
getLeap,
|
|
3
|
+
getGpsLeap,
|
|
4
|
+
getUtcDate,
|
|
5
|
+
getDateFromUtc,
|
|
6
|
+
} = require('../src/index');
|
|
2
7
|
|
|
3
8
|
test('getLeap', () => {
|
|
4
9
|
const gps_date = new Date('2017-01-01T00:00:31Z');
|
|
@@ -17,3 +22,9 @@ test('getUtcDate', () => {
|
|
|
17
22
|
const utc_date = getUtcDate(gps_date);
|
|
18
23
|
expect(utc_date.toISOString()).toBe('2017-01-01T00:00:13.000Z');
|
|
19
24
|
});
|
|
25
|
+
|
|
26
|
+
test('getDateFromUtc', () => {
|
|
27
|
+
const utc_date = new Date('2017-01-01T00:00:01.000Z');
|
|
28
|
+
const gps_date = getDateFromUtc(utc_date);
|
|
29
|
+
expect(gps_date.toISOString()).toBe('2017-01-01T00:00:19.000Z');
|
|
30
|
+
});
|