Hacker News new | ask | show | jobs
by astrobe_ 3 hours ago
And that's also why we are in the 21st century, not the 20th.
2 comments

Arr[0] is the first element of an array, not the “zeroth”.
In a zero based array type language. In pascal I believe arrays can start where you want them to as in "array[-10..10] of integer". It's been a while though.

There is no year zero. Trying to compute with one is almost certainly an error. Trying to work with it is like dividing by zero - it does not make sense.

The year "1" was originally a Julian Date. Using a Gregorian Date before the calendar was introduced is almost certainly an error.

For ancient things, use Before Present, where I believe Present is defined to be sometime in 1950 or there about. For "modern" things (varying definitions of modern) use a sensible format/calendar that works in your database.

> Using a Gregorian Date before the calendar was introduced is almost certainly an error.

It's just an extrapolation; using the calendar being used at the considered time would be meaningless for us, e.g. the short-lived french republican calendar [1].

[1] https://en.wikipedia.org/wiki/French_Republican_calendar

But Arr could be empty or uninitialised...
If there was a year 0, we would still be in the 21st century. It would just have started 1 year earlier, in 2000 instead of 2001:

0 – 99: 1st century

100 – 199: 2nd century

...

1900 – 1999: 20th century

2000 – 2999: 21st century

Although I think centuries are usually treated as starting in years ending in 0 anyway, in casual settings. Most people were certainly happy to celebrate "the new millennium" at the start of the year 2000.