/* ============================================= = TCB to TDB = = = =ent: LONGJD *pdJDtcb = TCB JulianDay = =exit: return double TDB-TCB = = LONGJD *pdJDtdb = TDB JulianDay = ============================================= */ double tcb_tdb(LONGJD *pdJDtcb, LONGJD *pdJDtdb) { double dFrac; double dInt; double dTemp; /* cal. dTCG */ dTemp = CONST_LB * (pdJDtcb->dDate - JD1977); dFrac = CONST_LB * (pdJDtcb->dTime * DAYSEC - DTAI_TT) - CONST_TDB0; dFrac /= DAYSEC; dInt = (int)dTemp; dFrac += (dTemp - dInt); /* Calc. TCG */ pdJDtdb->dDate = pdJDtcb->dDate - dInt; pdJDtdb->dTime = pdJDtcb->dTime - dFrac; ljd_normalize(pdJDtdb); return ((dFrac + dInt) * DAYSEC); } |
/* ============================================= = TDB to TCB = = = =ent: LONGJD *pdJDtdb = TDB JulianDay = =exit: return double TDB-TCB = = LONGJD *pdJDtcb = TCB JulianDay = ============================================= */ double tdb_tcb(LONGJD *pdJDtdb, LONGJD *pdJDtcb) { double dFrac; double dInt; double dTemp; /* cal. dTCG */ dTemp = CONST_LBB * (pdJDtdb->dDate - JD1977); dFrac = CONST_LBB * (pdJDtdb->dTime * DAYSEC - DTAI_TT) - CONST_TDB0; dFrac /= DAYSEC; dInt = (int)dTemp; dFrac += (dTemp - dInt); /* Calc. TCG */ pdJDtcb->dDate = pdJDtdb->dDate + dInt; pdJDtcb->dTime = pdJDtdb->dTime + dFrac; ljd_normalize(pdJDtdb); return ((dFrac + dInt) * DAYSEC); } |
$ ./atime UTC 2017/11/22 23:43:49.000000 JD = 2458080.488762 TT 2017/11/22 23:44:58.184000 TCG 2017/11/22 23:44:59.083366 TCB 2017/11/22 23:45:18.191953 TDB 2017/11/22 23:44:58.182903 TCB 2017/11/22 23:45:18.191953 TCG 2017/11/22 23:44:59.083366 TT 2017/11/22 23:44:58.184000 UTC 2017/11/22 23:43:49.000000 |
$ ./atime 1977 1 1 0 0 32.184 tt UTC 1976/12/31 23:59:45.000000 JD = 2443144.499826 TT 1977/01/01 00:00:32.184000 TCG 1977/01/01 00:00:32.184000 TCB 1977/01/01 00:00:32.184000 TDB 1977/01/01 00:00:32.183935 TCB 1977/01/01 00:00:32.184000 TCG 1977/01/01 00:00:32.184000 TT 1977/01/01 00:00:32.184000 UTC 1976/12/31 23:59:45.000000 |