|
DUDS
|
Distributed Update of Data from Something
|
I needed a way to record when events occur that is unambiguous, got annoyed with other time definitions making this difficult, things spiraled out of control, and I came up with Interstellar Time. It is designed, in part, to be fitting of the name.
Interstellar Time is based solely on seconds; it has no calendar since those are defined in connection with a planet. This means Interstellar Time has no need of leap seconds or days. In this way of thought, any time system that has a calendar and leap seconds is a planetary time system since it is intended to remain synchronized to the solar day and year of a planet. UTC is a perfect example. It includes leap seconds to use the correct definition of a second while staying in step with Earth's varying length days.
TAI, however, only started synchronized to the solar day of Earth, but has since advanced based on the definition of a second while still using a Terran calendar. This results in TAI becoming further desynchronized with Terran planetary time as UTC adds more leap seconds. Interstellar Time attempts to be more consistent by making no attempt to use the vestiges of planetary time while not using leap seconds. This should hypothetically make Interstellar Time an ideal intermediate form for converting between planetary time systems.
A number of computer systems use POSIX time, also called UNIX time. This time system is fixed to Earth's solar day, but uses a fixed length day. This is done by setting the clock back a second to account for a +1 leap second. The result is that using POSIX time for time stamps allows for two seconds of ambiguous time around a leap second. It also means that computations of durations can be incorrect unless extra effort is made to account for leap seconds.
The initial definition of Interstellar Time is intended to make it usable without being overly difficult. It is not intended to be a definition robust enough for use in interstellar travel, but hopefully a future revision of the definition will solve this issue. Interstellar Time is a count of seconds since time zero, which is arbitrarily defined as the very begining of the Terran year 1972 according to TAI, minus 31536000 seconds (two non-leap years without leap seconds). The subtraction avoids the issue of leap seconds before 1972; there was no international agreement before then and seemingly no records of such leap seconds are available online. The definition is close to a very common definition of time zero (1970 UTC is more commonly used), and it allows POSIX time to be seen as though it were TAI (no leap seconds) for a direct conversion to Interstellar Time. A proper conversion must add leap seconds to the POSIX time.
In ordered to be at least somewhat worthy of the name Interstellar Time, I decided the primary computer storage form ought to be large enough to last past the Stelliferous Era. It must also be an integer to avoid loss of precision over time. I decided on using a 128-bit integer that stores Interstellar Time in femtoseconds for plenty of resolution. It should last into the begining of the Degenerate Era. Other storage forms are also available that use less memory, but have more limited ranges and less resolution.
I found this useful while contemplating Human readable formats for Interstellar Time.
| Unit | Abrev | Seconds | Similar-ish | Earth Time Equivalent |
|---|---|---|---|---|
| second | s | 1 | second | 1 second |
| decasecond | ds | 10 | tens of seconds | 10 seconds |
| hectosecond | hs | 100 | minute | 1 minute, 40 seconds |
| kilosecond | ks | 1000 | quarter hour | 16 minutes, 40 seconds |
| myriasecond | mas | 10000 | hours | 2 hours, 46 minutes, 40 seconds |
| 1e5 seconds | 100000 | day | 1 day, 3 hours, 46 minutes, 40 seconds | |
| megasecond | Ms | 1e6 | week | 11 days, 13 hours, 46 minutes, 40 seconds |
| 1e7 seconds | 1e7 | months | 115 days, 17 hours, 46 minutes, 40 seconds | |
| 1e8 seconds | 1e8 | years | 3 years, 61 days, 16 hours, 19 minutes, 4 seconds | |
| gigasecond | Gs | 1e9 | decades | 31 years, 251 days, 13 hours, 21 minutes, 28 seconds |
| 1e10 seconds | 1e10 | centuries | 316 years, 324 days, 2 hours, 39 minutes, 28 seconds | |
| 1e11 seconds | 1e11 | millennia | 3168 years, 319 days, 4 hours, 1 minute, 4 seconds | |
| terasecond | Ts | 1e12 | tens of millennia | 31688 years, 269 days, 17 hours, 37 minutes, 4 seconds |
| petasecond | Ps | 1e15 | millions of years | 31.688738 million years |
| exasecond | Es | 1e18 | billions of years | 31.688738 billion years |
| zettasecond | Zs | 1e21 | trillions of years | 31.688738 trillion years |
Details worthy of notice:
This format follows the regular metric prefix convention of varying by a factor of 1000.
The letters are the metric prefix abreviations without units, excepct for s, since the units are all seconds. Each section jumps by a rather large amount, so I doubt this will work well for most people. It is implemented by duds::time::interstellar::Metricform.
This format has fields increasing by a factor of 100 to avoid the large jumps of the metric format.
It is implemented by duds::time::interstellar::Hectoform.