JD_UTC top-level property
Julian Date in the UTC scale
Implementation
// ignore: non_constant_identifier_names
final TimeInstantUnits JD_UTC = TimeInstantUnits('Julian Date (UTC)', 'JD(UTC)',
'JD(UTC)', 'Julian Date (UTC)', 86400.0, false, -2436204.5, (dynamic val) {
final d = UTC.fromMks(val).toDouble(); // UTC seconds
final jd0 = d ~/ 86400.0; // integer UTC days
// Fractional UTC days taking into account any leap seconds
// for the particular UTC day in question
final frac = (d - (jd0 * 86400.0)) / secondsInUtcDay(d);
return Double(2436204.5 + jd0 + frac);
}, (dynamic val) {
var d = val is num
? val.toDouble()
: val is Number
? val.toDouble()
: 0.0;
// Adjust origin to TAI/UTC origin
d -= 2436204.5;
// Convert to seconds UTC
final jd0 = d.toInt();
d = (jd0 * 86400.0) + ((d - jd0) * secondsInUtcDay(d * 86400.0));
return UTC.toMks(d);
});