use std::fs::File;
use fits_well::{Datetime, FitsReader, FitsWriter, Header, TimeScale};
fn main() -> fits_well::Result<()> {
let path = std::env::temp_dir().join("fits_well_time.fits");
let mut header = Header::new();
header
.set("SIMPLE", true)
.set("BITPIX", 8)
.set("NAXIS", 0)
.set("DATE-OBS", "2024-03-14T15:09:26")
.set("MJD-OBS", 60383.631551)
.set("TIMESYS", "UTC");
let mut writer = FitsWriter::new(File::create(&path)?);
writer.write_header(&header)?; writer.into_inner().sync_all()?;
println!("wrote {}", path.display());
let reader = FitsReader::open(File::open(&path)?)?;
let header = &reader.hdus()[0].header;
println!("observation MJD = {:?}", header.obs_mjd());
let t = Datetime::parse(header.get_text("DATE-OBS").unwrap())?;
println!("DATE-OBS -> JD {:.5}, MJD {:.5}", t.to_jd(), t.to_mjd());
let timesys = TimeScale::parse(header.get_text("TIMESYS").unwrap());
let jd_tt = timesys.convert(t.to_jd(), TimeScale::parse("TT"));
println!(
"UTC -> TT differs by {:.3} s",
(jd_tt - t.to_jd()) * 86400.0
);
Ok(())
}