brightdate 0.1.0

Universal Decimal Time System anchored at J2000.0 — a scientifically grounded, timezone-free time representation
Documentation

BrightDate — Universal Decimal Time System

A scientifically grounded, timezone-free time representation anchored at J2000.0. One f64 value. Trivially sortable, diffable, and storable.

Format

DDDDD.ddddd
↑           ↑
│           Fractional day (decimal time-of-day)
Integer days since J2000.0 epoch
  • Epoch: J2000.0 = 2000-01-01T12:00:00.000 TT = 2000-01-01T11:58:55.816 UTC (Unix ms 946_727_935_816) = JD 2_451_545.0 = MJD 51_544.5.
  • Unit: SI days (86400 SI seconds).
  • Timescale: TAI-coherent. The BrightDate clock ticks uniformly and has no leap-second discontinuities; leap seconds intervene only when converting to/from UTC labels (Unix ms, ISO strings).

Quick Start

use brightdate::BrightDate;

let bd = BrightDate::from_unix_ms(1_700_000_000_000.0).unwrap();
println!("{}", bd);          // e.g. "8704.09722"
println!("{}", bd.to_log_string()); // "[8704.09722]"

let tomorrow = bd.add_days(1.0);
let elapsed = tomorrow.difference(&bd); // 1.0