Representing Dates and Durations
How end dates are calculated
Internally, Aeon Timeline records events Start Dates and Duration, with the End Date calculated from those two values. This allows an event to retain the same duration as it is dragged around the timeline.
If you enter an end date, Aeon Timeline will calculate the necessary duration for the event to stretch from the start date to your entered end date, and will then store this value internally.
Subsequently changing the start date will cause the end date to be recalculated.
Some events may be precise to a given year only, while others specify a date and time down to the exact second. There are several reasons you may want to do this:
- An event may be a historic event where the exact date or time is unknown, only an approximate value such as a year.
- An event may take place over an entire day, week, month, or year, so specifying more precise time doesn’t make sense.
- A fiction writer may not need precision down to exact dates/times, in which case making up these values is an unnecessary distraction and clutters up the timeline with unnecessary information.
Aeon Timeline allows you to specify varying levels of precision for each event, so you can mix and match events that are specified to the second with events that only contain a year.
How event precision is calculated
The precision for an event will be determined by the maximum precision of the start date and duration that you enter.
For instance, if you enter a start date of 2012 and a duration of 3 years, Aeon Timeline will only display year information on the timeline (i.e. 2012-2014).
Conversely, if you enter 2012 and 2 months, the event precision is now months, and a date value of January – February 2012 will be shown instead.
How imprecise events are displayed
Although more precise date information is not displayed on the timeline, the event still must be positioned on the timeline relative to other events. Aeon Timeline uses the following rules to determine where an event should be displayed:
- If time is not specified, default to the beginning of the specified day (represented as 00:00:00).
- If the day of the month is not specified, default to the beginning of the month.
- If the month is not specified, default to the beginning of the year.
- If the time is not specified, default to the end of the day (represented as 24:00:00, see below)
- If the day of the month is not specified, default to the end of the month.
- If the month is not specified, default to the end of the year.
Representing end dates and midnight
There is an ambiguity in the way we naturally talk about dates, and a precise mathematical representation of the dates themselves.
A brief example
Let’s assume we have an event that starts in January and lasts for 3 months.
Mathematically, this would mean a start date of “2016-01-01 00:00:00” and an end date of “2016-04-01 00:00:00”.
But for most people, a natural interpretation of this would be January – March 2014 (i.e. it lasts for 3 months, and those 3 months are January, February, and March). This is because we typically refer to end dates inclusively, at least for precisions of days or larger.
How Aeon Timeline represents end dates
Aeon Timeline mirrors this natural approach when talking about dates – the end date is always considered to be inclusive.
So an event that starts in April and lasts a year goes from April 2016 – March 2017 and not April 2016 – April 2017.
To ensure consistency and avoid confusion throughout the application, we extend this policy for all precisions throughout our interface. Thus, the same example at varying precisions would be:
- 2015 – 2016
- January 2015 – December 2016
- 1 January 2015 – 31 December 2016
- 1 January 2015 00:00:00 – 31 December 2016 24:00:00
As can be seen, we represent the end time as 24:00:00 instead of the mathematically identical 1 January 2017 00:00:00.
The use of 24:00:00 is a less common but legal representation of a date, and is necessary to deliver consistent handling of dates at all precisions.