Galactic Coordinated Time

Galactic Coordinated Time

The exact date in the galaxy is uncertain, but it is believed to be around 2600 CE, using the pre-metric time system. Due to the uncertainty, time is measured in cycles since the Catastrophe (AC). Years before the Catastrophe are not tracked, as humanity is uncertain of what happened beyond scattered documents.

Time across the galaxy is measure as GCT — Galactic Coordinated Time. It has four components, cycle, day, segment, and unit.

cycle

This is the number of cycles since the Catastrophe, with a cycle being 100 days.

day

The number of days in the cycle, a number from 00 to 99.

segment

The day is broken up into 100 segments. Each segment is almost a "quarter hour" of old Earth time.

unit

Each segment is broken up into 1000 units. Each unit is slightly less than a second of old Earth time.

Formats

The official format of GCT is cycle.day/segment:unit GCT:

193.99/59:586 GCT

The above example represents 193 cycles after the Catastrophe, the 99th day, 59% of the day has gone by, and a bit over half of that segment has transpired. That would be just over 53 years in the pre-metric time system.

The official time format is /segment:unit GCT

/59:586 GCT

Durations are represented with a leading D, so, in order to indicate exactly three days we have:

D0.3/00:000 GCT

Though in practice, the cycle is often dropped:

D3/00:000 GCT

Shuttle schedules from station to station often show how many segments and units the travel lasts, so a shuttle trip lasting 2 segments and 15 units would show:

D/02:015 GCT

Notes

  • A unit is exactly 0.864 seconds of old Earth time
  • A segment is exactly 14.4 minutes of old Earth time
  • External blog link: Metric Time in Tau Station

Code Snippets

Just for fun, a few of the actual in-game code snippets.

Displaying GCT

my $days = sprintf "%9.5f" => $elapsed_seconds / 86_400;
$days =~ m{^
(?<cycle>\d+)
(?<day>\d\d)
\.
(?<segment>\d\d)
(?<unit>\d\d\d)
}ax;
my $gct = "$+{cycle}.$+{day}/$+{segment}:$+{unit} GCT";

Durations

my $days = sprintf "%9.5f" => $duration_in_seconds / 86_400;
$days =~ m{^
(?<cycles>\d+)
(?<days>\d\d)
\.
(?<segments>\d\d)
(?<units>\d\d\d)
}ax;
my $duration => "D$+{cycles}.$+{days}/$+{segments}:$+{units}";

Total Seconds

sub period (%args) {
my $seconds = delete $args{seconds} // 0;
$seconds += ( delete $args{minutes} // 0 ) * 60;
$seconds += ( delete $args{hours} // 0 ) * 3_600;
$seconds += ( delete $args{days} // 0 ) * 86_400;

# solar year
$seconds += ( delete $args{years} // 0 ) * 31_556_925.97474;
$seconds += ( delete $args{units} // 0 ) * .864;
$seconds += ( delete $args{segments} // 0 ) * 864;
if ( keys %args ) {
my $unknown = join ', ' => sort keys %args;
croak("Unknown keys to Veure::Util::Time::period: $unknown");
}
return round($seconds);
}

_g
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License