FUNCTION TimeShift, from_time=from_time, from_d2000=from_d2000, from_jd=from_jd, $ from_mjd=from_mjd, from_njd=from_njd, $ to_time=to_time, to_d2000=to_d2000, to_jd=to_jd, to_mjd=to_mjd, to_njd=to_njd @compile_opt.pro ; On error, return to caller time = IsType(from_time , /defined) d2000 = IsType(from_d2000 , /defined) jd = IsType(from_jd , /defined) mjd = IsType(from_mjd , /defined) njd = IsType(from_njd , /defined) InitVar, to_time , /key InitVar, to_d2000, /key InitVar, to_jd , /key InitVar, to_mjd , /key InitVar, to_njd , /key TimeOrigin, t_old, /get, $ time = time , $ d2000 = d2000 , $ jd = jd , $ mjd = mjd , $ njd = njd TimeOrigin, t_new, /get, $ time = to_time , $ d2000 = to_d2000 , $ jd = to_jd , $ mjd = to_mjd , $ njd = to_njd dt = TimeOp(/subtract,t_new,t_old) case 1 of time : RETURN, TimeOp(/subtract, from_time , dt) d2000: RETURN, TimeOp(/subtract, from_d2000, dt) jd : RETURN, TimeOp(/subtract, from_jd, dt) mjd : RETURN, TimeOp(/subtract, from_mjd , dt) njd : RETURN, TimeOp(/subtract, from_njd , dt) ENDCASE END