Before Common Era (BCE) Dates in Timeline View

I’m looking to have my art history notes in a timeline view using the $StartDate attribute but I believe the earliest possible date is 1 CE.

Example Note:

Title: Hall of Bulls
Location: Lascaux, France
Date: 15,000 BCE

Negative years are BCE. But I believe there is still an off-by-one error in date arithmetic at the BCE-CE boundary

It is a tribute to Tinderbox users that BCE date arithmetic really deserves to be in the FAQ!

1 Like

Thank you for your quick response! I don’t think there is any other developer who personally responds to questions within an hour. I think I can speak on behalf of the entire community by saying we appreciate all that you do.

3 Likes

I figured that negative numbers would represent BCE dates but Tinderbox defaulted back to CE dates for some of my notes. I just read the aTbR reference and I think the issue is that some of my dates exceed the negative integer limit of 2500.

For context, the 2,500 BCE limit is from [here] (which I would have taken from relase notes (Date-Type Attributes):

Tinderbox will allow negative dates to allow analysis of data either side of the CE/BCE (AD/BC) boundary. Negative integers from -1 to -2500, when coerced to dates, are interpreted as years BCE (BC). Some current limitations re ‘negative’ dates:

  • Currently, there is no way in a Displayed Attribute box or in display expressions to display the fact that a date is negative.
  • Negative dates cannot be tested for using greater than/less than comparisons.
  • Negative dates cannot easily be set via a Displayed Attribute input. The easiest method is to make a stamp with code like this: $StartDate.year = ($StartDate.year-(2*$StartDate.year)-1). That code will flip a positive date to a negative one. Given the first limitation above re displaying BCE dates, you will need to check out that the result is correct.
  • Date.year always returns a positive number, even from a negative date.
  • There are no date-format strings that will show the epoch.

BCE date support was first added in v5.7.0 (see).

What’s your earliest date?

The issue here is that we use bare integers for two different kinds of dates.

  1. The number of seconds since 00:00:00 UTC on 1 January 1970. This is the internal representation currently in use. The odd choice of the zero date is called the “Unix epoch”.

  2. Small integers are assumed to be years, so one can write “-411” for “411 BCE”. Tinderbox fills in a conventional time, day and month (15 June), since for many events in this era we don’t know the specific date. (I don’t know why it’s the 15th; the 13th would be the ides, which would at least have a claim to authenticity.)

My guess was that 2500 BCE would be “early enough,” as offhand I can’t think of very much history that’s older. But of course I wasn’t thinking clearly: the first dynasty of Egypt was a millennium earlier.

How old is old enough?

The course I am taking has a prescribed set of works

The oldest work is the Apollo 11 stones at 25,500 - 23,600 BCE

OK: we’ll go to 35,000 BCE in the next release.

2 Likes

Is there a reason to cap out BCE at -35000? Fine for most human events, but what is a geologist or cosmologist to do?

(Not a practical question for me, but geologists have a special place in my heart.)

I suppose one could consider the timeline numbers as interpretable as x102 or x103, etc.

1 Like

Large numbers are used for UNIX-style dates — seconds since the UNIX epoch. Not useful to real people, but quite useful for APIs and internal use.

1 Like

“Tinderbox fills in a conventional time, day and month (15 June), since for many events in this era we don’t know the specific date. (I don’t know why it’s the 15th; the 13th would be the ides, which would at least have a claim to authenticity.)”

So, no chance of implementing my feature request for a new date format “Year of the Consuls” then?

You no longer need me to do that!

Here’s one approach:

  1. Built a dictionary in $MyDictionary(/Fasti)
  2. Each entry has the form: “L. Junius Brutus et L. Tarquinius Collatinus: -509”
  3. Now you can get the year for any pair of consuls.
  4. You can write a simple function to invert the Fasti, swapping keys and values. Now, you can look up who were the consuls in -43.
3 Likes

And there was I, joking…

That’s brilliant, thank you!

1 Like