use astrotime::*;
fn main() {
let zero_point_greg =
DateTime::<Gregorian, Tt>::new(1977, 1, 1, 0, 0, 32, 184_000_000_000_000_000).unwrap();
let zero_point: DateTime<Julian, Tt> = TryFrom::try_from(zero_point_greg).unwrap();
let julian_epoch = {
let e = DateTime::<Julian, Tt>::new_bc(4713, 1, 1, 12, 0, 0, 0).unwrap();
e - zero_point
};
println!("Julian Epoch: {:?}", julian_epoch);
let julian_cal = {
let e = DateTime::<Julian, Tt>::new(1, 1, 1, 0, 0, 0, 0).unwrap();
e - zero_point
};
println!("Julian Cal: {:?}", julian_cal);
let gregorian_cal = {
let e = DateTime::<Gregorian, Tt>::new(1, 1, 1, 0, 0, 0, 0).unwrap();
let e: DateTime<Julian, Tt> = TryFrom::try_from(e).unwrap();
e - zero_point
};
println!("Gregorian Cal: {:?}", gregorian_cal);
let j1900 = {
let e = DateTime::<Gregorian, Tt>::new(1899, 12, 31, 12, 0, 0, 0).unwrap();
let e: DateTime<Julian, Tt> = TryFrom::try_from(e).unwrap();
e - zero_point
};
println!("J1900.0: {:?}", j1900);
let unix = {
let e = DateTime::<Gregorian, Tt>::new(1970, 1, 1, 0, 0, 0, 0).unwrap();
let e: DateTime<Julian, Tt> = TryFrom::try_from(e).unwrap();
e - zero_point
};
println!("unix: {:?}", unix);
let ts = {
let e =
DateTime::<Gregorian, Tt>::new(1977, 1, 1, 0, 0, 32, 184_000_000_000_000_000).unwrap();
let e: DateTime<Julian, Tt> = TryFrom::try_from(e).unwrap();
e - zero_point
};
println!("ts: {:?}", ts);
let j1991_25 = {
let e = DateTime::<Gregorian, Tt>::new(1991, 4, 2, 13, 30, 0, 0).unwrap();
let e: DateTime<Julian, Tt> = TryFrom::try_from(e).unwrap();
e - zero_point
};
println!("J1991.25: {:?}", j1991_25);
let y2k = {
let e = DateTime::<Gregorian, Tt>::new(2000, 1, 1, 0, 0, 0, 0).unwrap();
let e: DateTime<Julian, Tt> = TryFrom::try_from(e).unwrap();
e - zero_point
};
println!("Y2K: {:?}", y2k);
let j2000 = {
let e = DateTime::<Gregorian, Tt>::new(2000, 1, 1, 12, 0, 0, 0).unwrap();
let e: DateTime<Julian, Tt> = TryFrom::try_from(e).unwrap();
e - zero_point
};
println!("J2000.0: {:?}", j2000);
let j2100 = {
let e = DateTime::<Gregorian, Tt>::new(2100, 1, 1, 12, 0, 0, 0).unwrap();
let e: DateTime<Julian, Tt> = TryFrom::try_from(e).unwrap();
e - zero_point
};
println!("J2100.0: {:?}", j2100);
let j2200 = {
let e = DateTime::<Gregorian, Tt>::new(2200, 1, 2, 12, 0, 0, 0).unwrap();
let e: DateTime<Julian, Tt> = TryFrom::try_from(e).unwrap();
e - zero_point
};
println!("J2200.0: {:?}", j2200);
}