Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The glitch starts with the existence of “year 0”: there's no such thing in the Christian calendars, it goes straight from 1BC to 1AD. (Zero didn't even exist in the 6th century when the Anno Domini epoch was set).


They acknowledge that in the article, and make it clear that it really refers to 1 BC.


> Second, in the proleptic Gregorian calendar with astronomical year numbering (which is the calendar that we use on 28times),

Non-Julian calendar.


The article refers to the astronomical calendar, which is differnent from the gregorian by having a year 0, which makes calculations simpler. After year 1 the years have the same numbers, but before 1 they are off-by-one.

Years before 0 is indicated with negative numbers, e.g -50 corresponds to 51 b.c.


They're just using astronomical year numbering.


First year is actually zeroth, just shifted by one. Calculations start with zear.


And that's also why we are in the 21st century, not the 20th.


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.


> 2000 - 2999: 21st century

You have the right idea, but you made the 21st century a millennium


Argh! I knew I'd make a stupid mistake like that. (Now too late to edit.)


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...




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: