Rendered at 13:17:56 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
ralferoo 3 hours ago [-]
Their implementation must surely be wrong anyway (caveat: I've not looked at the code) if they're worrying about leap years for year 0 / 1BC.
Leap years didn't exist prior to AD 45, and then leap centuries were added from 1600 onwards (and 11 days missed out in 1582 to compensate for the leap years that were added on centuries that shouldn't have had the extra day added).
If the astronomical calendar is the same as Gregorian all the way to year 1, then it must handle those rules the same as the Gregorian calendar, so there shouldn't be any leap years prior to AD 45 at all.
Although that said, the month lengths were different before AD45 and there was sometimes an additional month inserted to realign the months and seasons. So trying to apply Gregorian calendar rules prior to AD45 seems a bit of a fool's errand anyway.
If the astronomical calendar is used to make calculations easier (e.g. replacing 1BC with 0 and 2BC with -1), I'm not sure that they'd go to the effort of trying to insert additional months before AD45 just to line up with the Gregorian calendar (which it doesn't before AD1 anyway), so it'd make sense to simply use our current months and not apply any leap year logic prior to AD45 and just not worry about attempting to line up any dates prior to AD45 in the calendars at all.
And of course, any historical documents prior to the fifth century would have been using a different calendar system for the years anyway, and would have to have been converted to AD or BC, so there's even less reason to worry about trying to make the dates in their calendar match up with the same exact dates with the modern calendars.
stymaar 8 hours ago [-]
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).
quink 7 hours ago [-]
They acknowledge that in the article, and make it clear that it really refers to 1 BC.
bazoom42 3 hours ago [-]
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.
shakna 6 hours ago [-]
> Second, in the proleptic Gregorian calendar with astronomical year numbering (which is the calendar that we use on 28times),
Non-Julian calendar.
astrobe_ 7 hours ago [-]
And that's also why we are in the 21st century, not the 20th.
quietbritishjim 6 hours ago [-]
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.
dcuthbertson 3 hours ago [-]
> 2000 - 2999: 21st century
You have the right idea, but you made the 21st century a millennium
quietbritishjim 34 minutes ago [-]
Argh! I knew I'd make a stupid mistake like that. (Now too late to edit.)
stymaar 7 hours ago [-]
Arr[0] is the first element of an array, not the “zeroth”.
Perenti 7 hours ago [-]
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.
astrobe_ 5 hours ago [-]
> 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].
First year is actually zeroth, just shifted by one. Calculations start with zear.
XYen0n 7 hours ago [-]
> The first century starts at 0001-01-01 00:00:00 AD, although they did not know it at the time. This definition applies to all Gregorian calendar countries. There is no century number 0, you go from -1 century to 1 century. If you disagree with this, please write your complaint to: Pope, Cathedral Saint-Peter of Roma, Vatican.
It may surprise you or the PGSQL devs to learn that St. Peter's Basilica is not a cathedral at all! And while Vatican City is surrounded and enclosed by the city of Rome, you shouldn't need to put "Roma" in an address if it's destined for the sovereign nation of Vatican City.
Your mail may arrive despite the silly addressing, but church buildings are not actually the places with mailboxes and postal routes. Okay, okay, it's a joke! I get it!
benj111 5 hours ago [-]
00:00:00?
Surely 12:00:00 or 24:00:00?
throw1234567891 4 hours ago [-]
00:00:00, there is no time such as 24:00:00. There could be 23:59:59, then 00:00:00.
IAmBroom 59 minutes ago [-]
And 12:00:00 is noon, which no one ever wanted for a calendar day change.
Leap years didn't exist prior to AD 45, and then leap centuries were added from 1600 onwards (and 11 days missed out in 1582 to compensate for the leap years that were added on centuries that shouldn't have had the extra day added).
If the astronomical calendar is the same as Gregorian all the way to year 1, then it must handle those rules the same as the Gregorian calendar, so there shouldn't be any leap years prior to AD 45 at all.
Although that said, the month lengths were different before AD45 and there was sometimes an additional month inserted to realign the months and seasons. So trying to apply Gregorian calendar rules prior to AD45 seems a bit of a fool's errand anyway.
If the astronomical calendar is used to make calculations easier (e.g. replacing 1BC with 0 and 2BC with -1), I'm not sure that they'd go to the effort of trying to insert additional months before AD45 just to line up with the Gregorian calendar (which it doesn't before AD1 anyway), so it'd make sense to simply use our current months and not apply any leap year logic prior to AD45 and just not worry about attempting to line up any dates prior to AD45 in the calendars at all.
And of course, any historical documents prior to the fifth century would have been using a different calendar system for the years anyway, and would have to have been converted to AD or BC, so there's even less reason to worry about trying to make the dates in their calendar match up with the same exact dates with the modern calendars.
Years before 0 is indicated with negative numbers, e.g -50 corresponds to 51 b.c.
Non-Julian calendar.
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.
You have the right idea, but you made the 21st century a millennium
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.
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
https://www.postgresql.org/docs/9.0/functions-datetime.html#...
Your mail may arrive despite the silly addressing, but church buildings are not actually the places with mailboxes and postal routes. Okay, okay, it's a joke! I get it!
Surely 12:00:00 or 24:00:00?