Changeset 22705
- Timestamp:
- Feb 26, 2009, 4:46:22 PM (17 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/astro/psTime.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/astro/psTime.c
r22684 r22705 1259 1259 double psTimeToJD(const psTime *time) 1260 1260 { 1261 psF64 jd = NAN;1262 1263 1261 // Error checks 1264 1262 PS_ASSERT_PTR_NON_NULL(time,NAN); 1265 1263 PS_ASSERT_INT_WITHIN_RANGE(time->nsec,0,(psU32)((1e9)-1),NAN); 1266 1264 1265 // ADD says that this formula works only for PS_TIME_TAI, so adding the following: 1267 1266 psTime *time2 = psTimeCopy(time); 1268 //XXX: ADD says that this formula works only for PS_TIME_TAI, so adding the following: 1269 if (time->type == PS_TIME_UTC || time->type == PS_TIME_TT) { 1270 psTimeConvert(time2, PS_TIME_TAI); 1271 } 1272 1273 // Julian date conversion 1267 psTimeConvert(time2, PS_TIME_TAI); 1268 1269 double jd; // Julian date, to return 1274 1270 if (time2->sec < 0) { 1275 1271 // psTime earlier than epoch … … 1279 1275 jd = time2->sec / SEC_PER_DAY + time2->nsec / NSEC_PER_DAY + JD_EPOCH_OFFSET; 1280 1276 } 1281 1282 1277 psFree(time2); 1278 1283 1279 return jd; 1284 1280 } … … 1286 1282 double psTimeToMJD(const psTime *time) 1287 1283 { 1288 psF64 mjd = NAN;1289 1290 1284 // Error checks 1291 1285 PS_ASSERT_PTR_NON_NULL(time,NAN); 1292 1286 PS_ASSERT_INT_WITHIN_RANGE(time->nsec,0,(psU32)((1e9)-1),NAN); 1287 1288 // ADD says that this formula works only for PS_TIME_TAI, so adding the following: 1293 1289 psTime *time2 = psTimeCopy(time); 1294 //XXX: ADD says that this formula works only for PS_TIME_TAI, so adding the following: 1295 if (time->type == PS_TIME_UTC || time->type == PS_TIME_TT) { 1296 psTimeConvert(time2, PS_TIME_TAI); 1297 } 1298 1299 // Modified Julian date conversion 1290 psTimeConvert(time2, PS_TIME_TAI); 1291 1292 double mjd; // Modified Julian Date, to return 1300 1293 if (time2->sec < 0) { 1301 1294 // psTime earlier than epoch … … 1306 1299 } 1307 1300 psFree(time2); 1301 1308 1302 return mjd; 1309 1303 }
Note:
See TracChangeset
for help on using the changeset viewer.
