Xi'an Date Calculator

by Jale - check out my other stuff at:

Click to buy me a coffee

Definitions & Settings

This is a fan creation based on assumptions detailed below, and in this YouTube video. This represents a "best attempt" to produce something that (almost) never contradicts available lore, while still taking to account common date-keeping wrinkles like Leap Years. Results may not correspond to future published CIG dates.

SEY = Standard Earth Year. Years are CE unless stated to be BCE. All times are stated in Standard Earth Time (SET), which is represented as equal to Coordinated Universal Time (UTC).

MXY = Modern Xi'an Year, which is 1.28 times as long as a Standard Earth Year. For divisions of the year more precise than a whole year, two Date Display Format modes are available - an exactly precise percentage progress model, or an experimental Date Code model (see Basic User Guide for details).

One published date indicates the existence of a Pre-Imperial Age. There are multiple potential start dates for this Age. This calculator has selected the most likely date Lore Nerd Guide for details), or the hypothetical Age can be ignored in results via the mode switch below.

Xi'an Date Display Format



Xi'an Pre-Imperial Age Format



Advanced Settings

Note: these settings allow you to override the underpinning assumptions of the calendar. Changing these values may cause the calculator to give results that no longer support the published calendar dates. You must click Update Calendar to apply your changes.

BCE Date Format




This setting influences the presumed format of all input and displayed BCE years.

Age Lengths




Provide the number of Xi'an Years between the start of the age, and the start of the next age.

Current Dates



Convert Human Date to Xi'an Date









Use negative years for BCE.


Convert Xi'an Date to Human Date








Guides

Basic User Guide

Using the Page

To use the calculators, simply enter the desired Standard Earth Year date and time, or Modern Xi'an year as numbers into the relevant field, and click the calculate button. If you do not fill all of the fields, the result will be the range encompassing the entirety of the date requested.

For Human dates, if you don't provide a month, the day field will be ignored, and if you don't provide a day, the hour field will be ignored.

Dealing with Errors

If you input something that can't represent a date as numbers, you will see "Invalid DateTime" and "NaN" a lot. For example, if you ask it to calculate 01/01/2024 00:00 it will work, but asking it to calculate First/Jan/Twentyfour won't, because it cannot parse text.

Dates and times that do not exist will give the same error. For example, while there is a 29th February 2024, there is no 29th February 2954. If you happen to visit this site on a Leap Day, the header date will simply display March 1st a "day early". For the same reason, asking for other impossible dates and times like 27 o'clock or the 32nd of December will also throw an error.

The most likely source of discrepancy between this calculator and dates calculated by any other method (including CIG's internal methods) is Leap Days This is explored further in the Tech section below.

Xi'an Date Display Formats

Because there is no published official way to express a Xi'an date more precisely than a year, the default mode for this calendar is just to consider percentage process through Xi'an years as specific, discrete points.

Two Xi'an dates have been published with greater precision than a year: July 4th 1457 is III.0.3 and July 5th 2793 is III.1044.08. At time of writing, there's not an official way to "read" those dates, but I interpret these as decimal fractions, provided only with sufficient precision to clarify an appropriate range, and rounded down. If this assumption is correct, than III.0.3 would correspond to the just under 47 days starting from 30% through the year III.0, while III.1044.08 would correspond to the just under 5 days starting from 8% through year III.1044. Because this is an assumption, and not an official reading, I have provided this mode as the non-default option.

In either mode, if there is nothing in the "Timepoint" box when converting a Xi'an Date to a Human Date, the range for the year will be calculated. In the default percentage mode, a number entered into the progress box will be assumed to implicitly include Leading Zeroes, and the precise corresponding moment calculated. In the experimental Date Code mode, the number of digits entered will be considered indicative of the level of precision, and a corresponding date range calculated.

Division Rough Comparison Notation Duration
Tenth Months .1 46 Days, 18 Hours, 28 Minutes, 48 Seconds
Hundredth Half Weeks .01 4 Days, 16 Hours, 12 Minutes, 17.28 Seconds
Thousandth Half Days .001 11 Hours, 13 Minutes, 13.728 Seconds
Ten Thousandth Hours .0001 1 Hour, 7 Minutes, 19.3728 Seconds
Hundred Thousandth Minutes .00001 6 Minutes, 43.93728 Seconds
Millionth Half Minutes .000001 40.39373 Seconds

Lore Nerd Guide

Calculating Xi'an Dates

Xi'an years equal exactly 1.28 Human Years - or alternatively, 25 Xi'an Years equal 32 Human Years. The Epoch for my implementation of the Xi'an Calendar is the start of III.1164, which equals the start of SEY 2947 - the year that the Overview of the Xi'an Language for Diplomats was published. This is corresponds to the fact that the start of III.0 is "1457.08", as 2947.00 - 1164 x 1.28 = 1457.08.

From this the start points of the other Imperial Ages were calculated as Human Dates. After that point, it is merely a matter of expressing the time relative to those Age transitions as either an interval formatted as a Xi'an date, or adding that interval to the Age Start Point to get a Human Date.

Lore Assumptions

A couple of other assumptions/observations are necessary to make things work. These assumptions all affect dates prior to the start of the Third Imperial Age, and is part of the reason why dates before this point are more likely to be "incorrect" and not match future CIG publications than years after it.

First, it assumed by default that there are no partial years and that the transitions between Imperial Ages occur at the transition of a calendar year. This is indicated by the fact that the event that starts the Third Imperial Age - the coronation of the first Kr.ē emperor, occurs at III.0.3 during the year III.0. This event is also described as the point where they "officially entered" the Third Age. Notably, that article has been updated several times to change the year from 501 CE to 1377 CE and finally to 1457 CE, implying that it is being kept up to date. That suggests that the change of Imperial Age caused by the coronation is "back-dated" to the previous New Year. This can be modified in the advenaced settings,

It's stated that the Third Era began "in II.1824". This is a somewhat ambiguous phrase - it could mean that (A) III.0 and II.1824 are two names for the same year which was then renamed upon the coronation in III.0.3, (B) that III.0 began at the end of II.1824, or (C) that III.0.00 falls somewhere within II.1824. As suggested in the paragraph above, option C is not very likely. Therefore it comes down to calculation: the dates of the Second Age fit the calendar if we take option B (see also my video and the "Year Zeroes" section in the Extreme Nerd Guide if you really want to get into the nitty gritty), and not if we take option A. Therefore, II.1824 is the year that precedes III.0.

Conversely, if we complete the same exercise with the Age Transition of the First Era to the Second, the dates only fit if I.14680 does overlap II.0, implying that the last Ru'a Emperor shared the year of his abdication with the coronation of the first Xy.ō Emperor.

Date "Fits" and "Best Matches"

A date "fits" with this calendar if some point of the stated SEY date overlaps with some point of the stated MXY date. At time of writing only two published dates do not "fit" with this timeline - the date of the Ē'aluth system, which appears to be a typo, and the date given in the Nox brochure, which is an older publication that will not be updated to the current system.

A Standard Earth Year's "best match" is the Xi'an year with which it shares the greatest overlap. A Modern Xi'an Year's "best fit" is the Standard Earth Year that shares the greatest overlap with it. These will not always be entirely reciprocal. There are four dates in the Canonical Source Table (below) where the Xi'an and Human dates "fit", but neither date is the other's "best match".

Xi'an Prehistory & The Pre-Imperial Era

Until December 2023, there were only 3 known eras of the Xi'an Calendar - The First, Second, and Third Imperial Ages, with the first year of each expressed as I.0, II.0 and III.0 respectively. Dates prior to I.0 had only been expressed as SEY dates with no Xi'an equivalent.

In December 2023, the Galactapedia page on the Quantum Drive, which had previously just said "SEY 25343 BCE" was amended to include a Xi'an date of MXY 0.5171. As this is not 5171 Xi'an Years before I.0, appears to be counting up from a newly defined 0.0 year.

This "Pre-Imperial Age" has not been defined in any other way, but is presumed to be the calendar of the Xi'an prior to their departure from RyiXy'an, and thus keep to the same conventions. By default, this hypothetical age is included in this calculator, but can be ignored in the settings. The Pre-Imperial Age has two potential start points that would allow MXY 0.5171 and SEY 25343 BCE to overlap: it could start either 9604 or 9605 Xi'an Years prior to the start of I.0. The former is used because this provides the better overlap between MXY 0.5171 and SEY 25343.

The Dark

The other new element of Lore from December 2023 was that the 4th Edition of the Xi'an Language Guide implies that The Dark - the Civil War at the end of the Second Age - can be considered an Age in its own right, or in parallel with the Second Age. Currently, this is not represented in the calculator, but will likely be added as an additional option in a future version if we see dates during The Dark being represented in a distinct fashion.

Standard Earth Time-zone

Perhaps controversially I have asserted with this calendar that Standard Earth Time is equivalent to UTC, rather than New York Time, which it is often said to be. The fact is that I cannot find any source for that claim - meanwhile if you go in-game, the 300i's clock operates on UTC, so I believe this is a better assumption currently. Fortunately, I have built the calculator so that changing this is a simple one-line modification, and in the meantime if you believe that Standard Earth Time is New York Time, just change it relative to UTC.

Extreme Nerd Guide

Year Zero(es)

Background

The Gregorian Calendar does not include a Year Zero: 1 BCE is followed by 1 CE. The ISO 8601 international standard for dates and times does include a Year Zero: the Gregorian Year 1 BCE is instead considered 0 CE, Gregorian Year 2 BCE is considered 1 BCE, and so on: BCE dates in ISO 8601 refer to dates one year later than the years with the same name in the Gregorian Calendar.

If you do a naïve whole-number calculation that spans the transition from BCE to CE, you will get a number that conforms to the ISO 8601 standard. For example, if you calculate 20 years prior to 10 CE by the sum 10-20 = -10, the answer 10 BCE would be correct for the ISO 8601 standard. To change this to the Gregorian Calendar, you must increase the magnitude by 1, to get 11 BCE.

How this relates to our problem

As discussed in the Lore Nerd section, there's an ambiguity on how the Second Age connects to the Third Age. This can be expressed as it not being clear whether the length of the Second Age (up to III.0) is meant to be 1824 years, 1825 years, or some value in between. As the Second Age spans the BCE/CE boundary, the difference between the Gregorian and ISO 8601 presents a second ambiguity - do BCE dates apply the Gregorian Correction, or not?

However, if you constrain yourself to these options, no whole-year option really works. No matter what combination of the Second Age length and BCE correction, at least one date either doesn't fits or fits extremely poorly.

The Answers

One solution is instead to assume that a mistake was made, and the Gregorian Correction applied in the wrong direction - a very easy and simple mistake to make when dealing with Dates. If we make that assumption, the dates of all Pre-Third Age dates fit perfectly: better in fact than Third Era dates, with every year matching its best fit year.

The consequence of this is that the SEY calendar has both a 0 CE and a 0 BCE - you can put year "negative zero" into this calculator.

The other solution is to assume that era changeovers force a New Year midway through the year. I have not adopted this as the default, because it overrides the assumption of whole years, and doesn't provide a singular calculator to work with, giving instead a range of lengths that could conceivably fit all dates. Nonetheless, the Advanced Settings will allow you to play with these options.

Calculating Xi'an Dates - the Tech

This page makes use of the Luxon library for converting Javascript Date objects into specific timezones. In brief, when converting a Human Date to a Xi'an date, the user input is parsed as a Luxon DateTime object (i.e. a number of milliseconds relative to the Unix Epoch), compared to further DateTime objects corresponding to the Xi'an Age Start Points, and the difference in milliseconds converted to a number of Xi'an years calculated relative to the preceding Age Start Point.

Conversely, when calculating from Xi'an Dates to Standard Earth Year dates, the duration of elapsed time relative to the corresponding Age Start Points is calculated, added to the Age Start Point, and the resulting Date object expressed as a nicely formated SEY Date and Time.

A Human year is represented as 365.24219 periods of 24 Hours (60x60 SI seconds), and a Xi'an year is represented as 1.28 x a Human Year. This is based on the average length of a true year.

Leap Days

My approach of representing a year as the average length is inherently the source of much of the discrepancy with other methods. In normal circumstances, when one "adds a year" to any date, they are likely just increasing by 365 days, or 366 if it is a Leap year. My implementation "adds a Human year" by adding the equivalent of 365.24219 days in milliseconds to the starting timepoint, and "adds a Xi'an year" by adding the equivalent of 1.28 x 365.24219 days in milliseconds to the starting timepoint. This will differ by a day or two compared to a method that handles Leap Days differently, or ignores them.

The alternative to this method is to work in terms of whole year numbers and to assume that Xi'an Years have 24-hour Leap periods at the same intervals as Human Years, which is not desirable. Therefore, I stand by my approach as the better method.

The other problem with Leap Days is how CIG might handle them. Star Citizen dates are the current date and time +930 years. This means that Leap Years do not fall at the same time: e.g. 2024 is a Leap Year, 2954 would not be. There has never been an in-lore event that fell on 29th February, and currently the calendar is not represented in game, so it's not clear how this will be addressed.

The most likely answer is the easiest - they will just observe leap days at the same timepoint as the real world, creating the implication that the system of deploying leap days has changed. This is actually fairly realistic, as the Leap Second is to be abolished by 2035, and altering the deployment of Leap Days is one solution for replacing it.

Presently, the calculator assumes that Leap Days will continue to fall as currently planned - if this changes in CIG's Lore, I will consider modifications to fit it.

Leap Seconds

Standard Earth Year dates and Standard Earth Times shown here are all calculated from UTC as stored on the IANA database. This means that the further back in time one goes, the more the minutes and seconds will "drift" relative to a more naïve calculation of simply changing the years, as the database takes into account historical leap seconds and time zone adjustments.

Conversely, the further into the future one goes, there will be no apparent drift in calculated dates - though in a sense, this is less accurate as leap Seconds are announced as-and-when needed and so cannot be predicted in advance as I explored on Twitter. This also means that over time, a date calculated today will become less accurate over time as leap seconds are added between that date and the Epoch.

This isn't really desired behaviour, as I doubt this is taken into account by any less anal calculation, and so will probably not exactly match a more practical/simple calculation. However, this implementation does take into account leap days or Daylight Savings, which is desired behaviour, so I have accepted that a drift of a few apparent minutes and seconds for centuries in the past is not important compared to keeping other things simple. While SET/UTC does not observe DST, I originally built this tool around the New York time zone in the mistaken belief that this was the proper SET time zone, and I want to leave the option open to use other time zones if I like.

In practice, this doesn't really matter except in the extreme rare edge cases where a few seconds makes the difference of which year a particular moment falls in. It just means that this calculator might in some edge cases find a slightly different result to a simpler calculation, because this implementation takes into account a few seconds of drift in the past. This will very rarely impact on a year-level date. It would matter if I made a tool that calculated the interval between two dates, but I am not doing that.

Date Tables

Canonical Source Dates

MXY SEY Event & Source Notes
Pre-Imperial
Unknown 33900 BCE Foundation of Li'tova No Xi'an date given
Unknown 29500 BCE House Uai'i publish the Three Leaves of Flavor No Xi'an date given - would fall in hypothetical Pre-Imperial Age as 0.1923.
Unknown 26038 BCE House Uai'i come to power No Xi'an date given - would fall in hypothetical Pre-Imperial Age as 0.4628.
0.5171 25343 BCE House Yaing invent the Quantum Drive Only "Age 0" date
Unknown 20044 BCE Start of the Great Divide No Xi'an date given - would fall in hypothetical Pre-Imperial Age as 0.9310.
Unknown 19770 BCE End of the Great Divide, destruction of RyiXy'an No Xi'an date given - would fall in hypothetical Pre-Imperial Age as 0.9524.
First Imperial Age
I.0 19668 BCE Start of First Imperial Age
I.9997 6872 BCE Discovery of R.il'a
I.14467 1150 BCE Birth of Emperor Ch.ul'ē se Ru'a
I.14568 1021 BCE Birth of Emperor Se'ang se Ru'a
I.14599 981 BCE Discovery of Ē'aluth
I.14629 943 BCE Death of Emperor Ch.ul'ē se Ru'a
I.14672 888 BCE Discovery of Kai'pua
I.14680 878 BCE End of First Imperial Age In order to make preceding years fit, I have assumed this co-incides with II.0
Second Imperial Age
II.0 878 BCE Start of Second Imperial Age In order to make preceding years fit, I have assumed this co-incides with I.14680
II.213 605 BCE Death of former Emperor Se'ang se Ru'a
II.914 291 Xi'an-Kr'thak First Contact
II.961 351 Start of Spirit Wars
II.1138 578 House Kr.ē sanctioned as the prime intelligence house
II.1699 1296 Attack on Tethtām Naval Base
II.1706 1305 Assassination of House X.yō, beginning of the Dark
II.1735 1342 End of Spirit Wars
II.1824 1457 End of Second Imperial Age In order to make preceding years fit, I have assumed this does not co-incide with III.0, and so ends in 1457.
Third Imperial Age
III.0 1457 Start of Third Imperial Age In order to make preceding years fit, I have assumed this does not co-incide with II.1824. Specifically starts with 1457.08.
III.0.3 4th July 1457 Coronation of U.e'o se Kr.ē
III.367 1927 Xi'an witness a Banu Luminalia festival
III.690 2341 First Koa e Ko'ia Race
III.726 2386 Birth of Āi se Cho'an
III.796 2477 Āi se Cho'an completes civil service These have an 88 day overlap, though both years have other "better" matches.
III.802 2483 Discovery of Th.us'ūng These have a 101 day overlap, though both years have other "better" matches.
III.826 2515 Discovery of Kyuk'ya These have a 235 day overlap, though both years have other "better" matches.
III.837 2529 Discovery of Yā'mon
III.838 2530 Human - Xi'an First Contact, start of Cold War, Birth of Emperor T.uēng se Kr.ē
III.874 2577 Disappearance of Āi se Cho'an These have a 29 day overlap, though both years have other "better" matches.
III.926 2602 Discovery of Ē'aluth by Humans Conflicts with other designation for III.926, disregarded. Most likely intended to be 2642.
III.926 2643 Coronation of Emperor T.uēng se Kr.ē
III.1017 2759 Discovery of La'uo by Xi'an
III.1026 2771 Discovery of La'uo by Humans
III.926 2775 Opening of communications between Senator Terrance Akari of Terra and Emperor T.uēng se Kr.ē Conflicts with other dates in the same article, disregarded. Most likely to be III.1030.
III.1040 2789 Meeting of Senator Terrance Akari of Terra and Emperor T.uēng se Kr.ē
III.1044.08 5th Jul 2793 Ratification of Perry Line Pact, end of Cold War
III.1164 2947 Letter from Master T.ai Date on letter featured on page 3, transliterated on pages 6 & 7, translated on pages 8 & 9.
III.1167 2951 Letter from the Gatac Archives
III.1167 2947 Release of the Nox Conflicts with other designation for III.1167 - older source, disregarded.

Derived Dates

MXY SEY Event Notes
0.0.00 SEY Aug 3 31962 BCE, 4:23 PM Start of Hypothetical Pre-Imperial Age Calculated from possible start points that satisfy MXY 0.5171 = SEY 25343 BCE. Two possible dates satisfy this, so I selected the one that has the larger overlap of MXY 0.5171 & SEY 25343 BCE.
I.0.23 to I.0.99 SEY Jan 1 to Dec 25 19668 BCE Coronation of Ya.l'ē se Ru'a Range of year I.0 that corresponds to 19668 BCE
II.0.00 to
II.0.71
SEY Jan 31 878 BCE to
SEY Dec 31 878 BCE
Coronation of Y.ah’a se Xy.ō Overlapping ranges of II.0 and 878 BCE.
III.1164.00 1st Jan 2947, 00:00 Epoch used for other dates Corresponds to the start of the year when the Xi'an Language Guide was published.
This is a fan-made creation. Star Citizen®, Roberts Space Industries® and Cloud Imperium ® are registered trademarks of Cloud Imperium Rights LLC.