74 #define MJD2000 51544.0
94 181, 212, 243, 273, 304, 334};
97 182, 213, 244, 274, 305, 335};
103 ut = (double) hr + (
double) min / 60.0;
109 mjd += ((double) day + ut / 24.0);
120 curtime = time(NULL);
121 uttime = gmtime(&curtime);
123 tp->
year = uttime->tm_year + 1900;
124 tp->
mon = uttime->tm_mon + 1;
125 tp->
day = uttime->tm_mday;
126 tp->
hour = uttime->tm_hour;
127 tp->
min = uttime->tm_min;
136 int day1, day2, mon1, mon2,
interp;
137 int yr, curyea, curmon, curday, curhou, curmin;
139 int maxdays[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
142 double ven_d1, mar_d1, mar_r1, jup_d1, sat_d1, sat_i1;
143 double ven_d2, mar_d2, mar_r2, jup_d2, sat_d2, sat_i2;
155 curtime = time(NULL);
156 uttime = gmtime(&curtime);
157 curyea = uttime->tm_year + 1900;
158 curmon = uttime->tm_mon + 1;
159 curday = uttime->tm_mday;
160 curhou = uttime->tm_hour;
161 curmin = uttime->tm_min;
181 if(curyea < 2010 || curyea > 2025)
183 st_fail(
"Year: %d Outside valid range of 2010-2025", curyea);
187 if(curmon < 1 || curmon > 12)
189 st_fail(
"Invalid month: %d", curmon);
200 if(curday < 1 || curday > maxdays[curmon-1])
202 st_fail(
"Invalid day: %d", curday);
206 if(curhou < 0 || curhou > 23)
208 st_fail(
"Invalid hour: %d", curhou);
212 if(curmin < 0 || curmin > 59)
214 st_fail(
"Invalid minutes: %d", curmin);
224 st_report(
"Using Ephem file: %s", ename);
227 if((fp = fopen(ename,
"r")) == NULL)
229 st_fail(
"Can't open ephemeris file: %s", ename);
237 while (fscanf(fp,
"%d %d %d %lf %*s %lf %lf %*s %lf %*s %lf %lf %*s",
238 &yr, &mon1, &day1, &ven_d1, &mar_d1, &mar_r1, &jup_d1, &sat_d1, &sat_i1) != EOF)
240 if(yr == curyea && mon1 == curmon && day1 == curday)
246 if(fscanf(fp,
"%d %d %d %lf %*s %lf %lf %*s %lf %*s %lf %lf %*s",
247 &yr, &mon2, &day2, &ven_d2, &mar_d2, &mar_r2, &jup_d2, &sat_d2, &sat_i2) == EOF)
249 st_fail(
"End of Ephemeris--unable to interpolate!");
257 frac = ((double) curhou + ((
double) curmin / 60.0)) / 24.0;
258 ven_d1 += frac * (ven_d2 - ven_d1);
259 mar_d1 += frac * (mar_d2 - mar_d1);
260 mar_r1 += frac * (mar_r2 - mar_r1);
261 jup_d1 += frac * (jup_d2 - jup_d1);
262 sat_d1 += frac * (sat_d2 - sat_d1);
263 sat_i1 += frac * (sat_i2 - sat_i1);
264 day = (double) day1 + frac;
int interp(double *array, int nx, int ny, double *parray, int npx, int npy)
double getMoonAge(int yr, int mon, int day, int hr, int min)
double getmjd(int yr, int mon, int day, int hr, int min)
void getephem_utc(TIME *tp)