A glitch in February of the year 0(28times.com) |
A glitch in February of the year 0(28times.com) |
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.
Our aim isn’t to try and line up with the calendar that was in use at the time, 2026 years ago.
Instead, the aim (for 28times) is to implement the rules of the proleptic Gregorian calendar[0] correctly. The bug was that those rules weren’t followed for some rare values.
But to address your comment properly, I think I should justify why on Earth someone would want to use the proleptic Gregorian calendar for year 0 and before. In short, because it’s a useful fiction.
The biggest reason is interoperability: a lot of software follows proleptic Gregorian rules, aligning around ISO 8601. Probably a clear majority of date/time software. We want to line up with all that existing software that assigns a specific meaning to a string like "0000-02-01". That’s the first of February in the proleptic Gregorian calendar, even though it was a different date in the ancient Romans’ calendar.
The other reason is to keep it simple: since most people use the Gregorian calendar in present times, it’s simplest (for us as implementors, but also for users) to extend its rules into the distant past and distant future. The alternative for be to have multiple sets of rules, e.g. Julian and Gregorian calendar. (You might say it would be even simpler to just not allow timestamps before 1582. But there are use cases, e.g. in astronomy or history, where people want to work with timestamps before 1582, and even before 1 AD.)
[0] https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar
Non-Julian calendar.
Years before 0 is indicated with negative numbers, e.g -50 corresponds to 51 b.c.
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.
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?
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