From 1aba3e11f199bb086fc1201fb64b140da37228a3 Mon Sep 17 00:00:00 2001 From: Robert Bost Date: Fri, 29 Sep 2017 20:27:23 -0400 Subject: [PATCH] Use constant Julian start day --- src/defs.h | 5 ++++- src/julian_date.c | 15 ++++----------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/defs.h b/src/defs.h index 46531b6..372a7b0 100644 --- a/src/defs.h +++ b/src/defs.h @@ -11,7 +11,7 @@ #define e6a 1.0E-6 #define tothrd 6.6666666666666666E-1 /* 2/3 */ #define xj2 1.0826158E-3 /* J2 Harmonic (WGS '72) */ -#define xj3 -2.53881E-6 /* J3 Harmonic (WGS '72) */ +#define xj3 -2.53881E-6 /* J3 Harmonic (WGS '72) */ #define xj4 -1.65597E-6 /* J4 Harmonic (WGS '72) */ #define xke 7.43669161E-2 #define xkmper 6.378137E3 /* WGS 84 Earth radius km */ @@ -60,5 +60,8 @@ /* doppler calculation */ #define SPEED_OF_LIGHT 299792458.0 +/* Date/Time constants */ +#define JULIAN_START_DAY 315446400 + #endif diff --git a/src/julian_date.c b/src/julian_date.c index 78fa213..5e92d26 100644 --- a/src/julian_date.c +++ b/src/julian_date.c @@ -1,5 +1,6 @@ #define _POSIX_C_SOURCE 1 #include +#include "defs.h" #include @@ -48,15 +49,7 @@ time_t mktime_utc(const struct tm* timeinfo_utc) **/ time_t get_julian_start_day() { - struct tm start_time; - start_time.tm_sec = 0; - start_time.tm_min = 0; - start_time.tm_hour = 0; - start_time.tm_mday = 31; - start_time.tm_mon = 11; - start_time.tm_year = 1979-1900; - start_time.tm_isdst = 0; - return mktime_utc(&start_time); + return JULIAN_START_DAY; } #define NUM_SECONDS_IN_DAY (24.0*60.0*60.0) @@ -71,10 +64,10 @@ time_t predict_from_julian(predict_julian_date_t date) { double seconds_since = date*NUM_SECONDS_IN_DAY; time_t ret_time = get_julian_start_day(); - + //add number of seconds since julian start day to the julian start day, get current time_t struct tm timeinfo; - gmtime_r(&ret_time, &timeinfo); + gmtime_r(&ret_time, &timeinfo); timeinfo.tm_sec += seconds_since; ret_time = mktime_utc(&timeinfo); return ret_time;