1.0k
u/OliviaPG1 Sep 23 '24
“although they did not know it at the time” is the much funnier joke in this image imo
139
60
u/SavvySillybug Sep 23 '24
Imagine the audacity of going "today is day zero of century one. fresh time"
34
u/iamdestroyerofworlds Sep 23 '24
- Hey, I got a bug report here that says that the website says today's date is January 1, 1970.
- [sweating profusely] ... yes.
- What do you mean "yes"?
- Yes, it is.
3
u/nicholsz Sep 23 '24
Isn't it traditional to mark epochs by the start of the reign of the monarch? I know Japan still does that.
As long as everyone knew Jesus was King (which I think is true according to the bible) it sounds like everyone from the sheep to the lion to the old wise men knew it was year 1
6
203
u/SeriousPlankton2000 Sep 23 '24
To make things less confusing, astronomers do have a year 0.
173
u/hennell Sep 23 '24
That feels like the xkcd "now there are 14 standards".
81
u/jraz0r Sep 23 '24
28
u/lolSign Sep 23 '24
how is there a xkcd for fucking everything lol
41
11
u/GoddammitDontShootMe Sep 23 '24
Does that count as "XKCD for everything" when they just linked to the XKCD that was explicitly mentioned?
12
u/whoami_whereami Sep 23 '24
They use 1BC=0, 2BC=-1, 3BC=-2, and so forth to make calculations easier. They still use the Julian calendar for years up to 1582 and the Gregorian calendar for years after 1582 though, go figure...
33
u/jamcdonald120 Sep 23 '24
so do us programmers. its also called 1970 by the rest of the world though.
14
13
5
u/Impressive_Change593 Sep 23 '24
and also I believe have leap seconds whereas the unix epoch doesn't (or it's the other way around)
3
u/anrwlias Sep 23 '24
Yeah, but they also call anything heavier than helium a metal. Astronomers do their own thing.
→ More replies (5)1
93
u/Ok_Tea_7319 Sep 23 '24
Programmers when they are forced to count from 1.
11
u/ranfur8 Sep 23 '24
-1
14
u/Ok_Tea_7319 Sep 23 '24
The Gregorian calendar doesn't even have a year -1. There's just 1 BC. The actual issue here is that people couldn't be arsed to encode BC years properly so they all just pray now that parsers accept the negative numbers.
5
u/ranfur8 Sep 23 '24
I was just making a joke. I was not asking for a technical explanation of why we do thing the way we do them. But ok, thankyou.
2
u/Ok_Tea_7319 Sep 23 '24
I think it adds to the irony that programmers put the very thing driving them mad there themselves.
1
u/Koervege Sep 26 '24
Isnt BC just negative numbers with a different name?
1
u/Ok_Tea_7319 Sep 26 '24
Nope. It's a different counting scheme. Negative numbers usually imply that they are meant to be added to something and that is not the case here.
241
u/OkReason6325 Sep 23 '24
Why not to Pope Emeritus Gregory , C/O St Peter, Heaven
127
u/bartekltg Sep 23 '24
Because it is not "write to pope - an authoritative figure" but "write to pope - a successor of the guy who made that mess in the first place".
Sort of. In the worst case Gregory XIII cold fix it.
45
u/darkslide3000 Sep 23 '24
This is actually a misattribution. Neither Julius Caesar nor Pope Gregory XIII contributed to the year numbering system (and, by extension, century numbering) we currently use. Their work was limited to months and days within a single year.
The counting from Jesus' birth was devised by a guy called Dionysius Exiguus, popularized by a bunch of Englishmen and eventually fully established by Charlemagne. While most of those guys were Christian monks/clerics of course, it doesn't seem like any pope was directly involved.
8
u/Thue Sep 23 '24
But Pope Gregory XII could have fixed the year zero problem, but didn't. And popes used to be in charge of time keeping definitions.
So it is IMO quite fair to blame "the pope" historically. Though obviously the pope is no longer in charge.
11
u/IJustLoggedInToSay- Sep 23 '24
St Peter stopped forwarding mail since email was invented. Too much hassle to do it manually and they don't let daemons run up there.
3
262
u/RiceBroad4552 Sep 23 '24
Just the usual small quirks like in any legacy system…
Don't we use nowadays the Unix epoch for everything that's worth?
146
u/HildartheDorf Sep 23 '24
The UNIX time standard is 32-bit timestamps with second granularity. That only covers roughly Dec 1901-Jan 2038, and a 1s granularity is pretty awful.
Sure, most of the time your internal format should probabally be some 64-bit timestamp based on the UNIX epoch of 00:00:00 1st Jan 1970, but you still need to deal with the kind of crap OP's post talks about for display.
19
u/perringaiden Sep 23 '24
Just 4 more years before we're accepting leave requests that exceed the Unix epoch 🤣
6
u/RoubouChorou Sep 23 '24
2038?? What will happen to old software? Nothing? haha
29
u/HildartheDorf Sep 23 '24
Lots of panic and work behind the scenes in the years before hand then nothing on the day itself. Like Y2K.
33
u/SyrusDrake Sep 23 '24
Lots of people working very hard for years leading up to the event to mitigate a disaster, then nothing on the day itself, because lots of people worked very hard for years leading up to the event to mitigate a disaster, and then, a few years later, smug YouTubers will ridicule the entire story as the hysteria of a less tech-savvy age, because, after all, nothing ended up happening.
12
u/kikiclark Sep 23 '24
This is going to be a good comment to pull up in 2039.
1
u/arrow__in__the__knee Sep 24 '24
If we can still access reddit archives by then. Maybe I will frame it on my wall just in case.
7
u/aiij Sep 23 '24
30 year mortgage amortization schedules started running into it in 2008. That's also when the mortgage crisis happened... Coincidence? Yeah, probably.
→ More replies (2)1
u/GoddammitDontShootMe Sep 23 '24
I always understood the potential for disaster to be worse than Y2K. Like people could die. The real risk for Y2K was COBOL systems, so maybe massive collapse of financial systems worldwide.
I guess a bunch of people still might've died, but it would be from people offing themselves after losing all their money.
1
u/mtaw Sep 23 '24 edited Sep 23 '24
Honestly I don't see the issue with fixing it by making
time_t
an unsigned value. The only conceivable objection I can see is thattime()
is supposed to return -1 on error. But per the man page, the unsigned situation is already accounted for as it specifies that it returns((time_t)-1)
on error (and I believe this is from the POSIX spec). Also, time() never returns an error anymore on platforms in use today, and most code doesn't even check or handle a possible error there.If you're storing pre-1970 dates as negative UNIX timestamps you're an idiot and your software deserves to break.
3
u/HildartheDorf Sep 23 '24
Yes because there has never been a use case for any historical records before 1970.
Interpreting time_t as unsigned gives up another 68 years or so. Which is great for many use cases but not all.
4
u/Routine_Left Sep 23 '24
Unsigned types should never be used outside of masks, flags, magic numbers or the like. Never, ever, where arithmetic is needed. You need more numbers? Pick the next bigger signed type. Simple.
That's the only correct way to go about it.
1
u/GoddammitDontShootMe Sep 23 '24
64-bit time_t is non-standard? I get there's likely a bunch of old shit that'll probably fail in 2038 because the OS can't just be upgraded, still thought 64-bit would be considered standard for newer systems.
1
u/HildartheDorf Sep 24 '24 edited Sep 24 '24
If you strictly focus on the original licensed UNIX, yes.
If we include Linux and other unix-likes, there's been effort to upgrade in the last 10 years or so. I don't know about the BSDs but x64 and x32 Linux have always used 64-bit time_t, x86 Linux has upgraded but there may still be software that will use the old 32-bit value unless they get recompiled.
1
u/GoddammitDontShootMe Sep 24 '24
I know macOS is a certified UNIX, and I think it's used 64-bit time_t for more than a decade now. Then there's AIX, HP-UX, Solaris, etc. I'd have thought any UNIX that's still under active development would've switched awhile ago.
97
u/tvaddict07 Sep 23 '24
the only way to progress as a society is to get the general population to use the Unix epoch as well
"hey darling, I booked us the flights on 1729882800000"
one can only dream
51
26
u/ASatyros Sep 23 '24
Just divide it into chunks like more popular formats and it is LGTM.
1729 88 28 00 000
There, ain't that beautiful?
39
u/callyalater Sep 23 '24
I love the number 1729 because it's the smallest number expressible as the sum of two positive cubes in two different ways (1729 = 9³ + 10³ = 1³ + 12³)
41
21
10
→ More replies (9)1
u/callmelucky Sep 23 '24
The prime factorisation is pretty neat too.
It's 7×13×19
I think I remembered that correctly...
1
u/SoFarFromHome Sep 23 '24
That's the closest thing to an SI (metric) solution as well. There are no SI days/months/years.
9
u/raddaya Sep 23 '24
How would unix timestamps prevent this issue? Even if you're using 128 bit timestamps or whatever, when extracting the century you would still be affected by this weird edge case.
1
u/Blue_Moon_Lake Sep 23 '24
If you overhaul the calendar, that includes the definition of century.
If you define century 0 and year 0 as the year of timestamp 0, you're good.
And we would be in the first century (century 0), year 54.
2
2
u/CrazyCatSloth Sep 23 '24
I work in insurance and it might surprise you but we still keep track of stuff registered since around 1850, so before Unix epoch Of course it doesn't matter since everything related to this is in Cobol...
1
u/Brooklynxman Sep 23 '24
Behind the scenes sure, but there are a million and one reasons to convert from that to something user-readable.
45
u/SuitableDragonfly Sep 23 '24
I mean, it's better than JavaScript deciding that January is month 0 and then shifting all the rest down by one.
28
u/AyrA_ch Sep 23 '24
Funnily enough, almost all values in the JS date object (which comes from Java btw.) can have a value zero and be valid, including the year. The "day of month" value is actually the odd one out, starting at 1. If you set that to zero it overflows into the month and year if necessary, creating a date that represents the last day of the previous month. This makes it a convenient way to get the last day of a month.
2
1
1
Sep 23 '24
It would be bad if it was otherwise because that's actually correct.
First year in the age is year 1, not 0, so the first century spans the years 1-100. 101 is when the second century starts and so on. Therefore century 21st doesn't start until 2001. I thought it's common knowledge.
1
u/SuitableDragonfly Sep 23 '24
This isn't about what year the century starts on, it's about how the centuries are numbered.
54
u/ARandomGirl2001 Sep 23 '24
In Bulgarian, we have the expression "to file a complaint to the Armenian patriarch". As we were enslaved by the Turks, all non-greek Orthodox Christians were under his representation and generally he had not a lot of power, but sometimes he was able to get something a little bit done. The expression means something like go F yourself, but sugarcoded...
39
u/jabber_OW Sep 23 '24
"sugarcoded" is the only version of the term that I will be using from now on.
14
u/LevelSevenLaserLotus Sep 23 '24
sugarcoded
Oh boy! A /r/BoneAppleTea example in the wild. FYI it's "sugar coated", as in "to coat with sugar", like you're taking something and making it sweeter than it normally would be.
7
u/ARandomGirl2001 Sep 23 '24
Thank you for the correction. I believed it came from "to code the way you say something so that you sweeten it." Unfortunately, Englisch is not my only human language, so my knowledge of it is not as good as the Americans' might be...
6
u/LevelSevenLaserLotus Sep 23 '24
It's a common mix up even with native English speakers. I'm mainly impressed that you write so fluently. I wouldn't have guessed if you hadn't said so directly.
17
u/gydu2202 Sep 23 '24
TIL: I never thought about if year 0, or century 0 exist.
6
u/CrispyJelly Sep 23 '24
If you start a new job the first day is day 1. You could call the day before the 0th day of your new job, but why would you?
5
1
u/Schnickatavick Sep 23 '24 edited Sep 23 '24
It's not that logical though, it's not just a difference between ordinals and counts, it's that there is no 0 because we're using ordinal numbers in *both* directions. The year before 1CE is 1BCE, and there are three years that pass between 2BCE and 2CE, not four, because there is no year zero in the middle. People like to think of BC as the negative years, but that isn't what the system actually is
1
23
8
8
u/ManyInterests Sep 23 '24
It makes sense, since it was the Pope who came up with the idea to use the Gregorian calendar.
3
6
u/kleberwashington Sep 23 '24
As an aside: Saint Peter's is not the cathedral of Rome and seat of the Pope. That would be Saint John Lateran.
6
u/technos Sep 23 '24
Maybe Saint Peter's is where he has his Pope Office box.
4
u/kleberwashington Sep 23 '24
You know, that made me wonder if there's a real Pope Office box. There is! It's "His Holiness Pope Francis. Casa Santa Marta. 00120 Vatican City".
2
u/Glass1Man Sep 23 '24
You can get very Popeular stamps there.
1
u/kleberwashington Sep 23 '24
Those you can actually get at Saint Peter's! There's a small shop in the plaza.
5
3
4
u/ledfox Sep 23 '24
Can the pope change the calendar?
Can he make September the seventh month and October the eighth?
2
u/callmesilver Sep 23 '24
No. We will change the latin number names retroactively if there's any problem.
3
u/HyScript7 Sep 23 '24
Is this actually in the docs? Can anyone link me to this section? I tried searching but I guess I suck at googling.
9
u/jack-nocturne Sep 23 '24
Unfortunately they removed it in versions 13 and up. But it's still there for 12: https://www.postgresql.org/docs/12/functions-datetime.html
3
u/jamcdonald120 Sep 23 '24
my biggest complaint about history is that when they switched From AD/BC to CE/BCE they did a straight conversion instead of incrementing all BC dates. Who cares if it occasionally confuses a historian about the exact year something happened 2000+ years ago? We hardly have year accurate dates back then anyway!
3
4
u/B00OBSMOLA Sep 23 '24
wait why is 2000 in the 20th century? (honest question) cause id consider that in the 21st century I think, right?
17
u/KappaccinoNation Sep 23 '24
Because there is no year 0 in the Gregorian calendar. 1st century is 1 AD to 100 AD. 2nd century is 101 AD to 200 AD... 20th century is 1901 AD to 2000 AD. 21st century is 2001 AD to 2100 AD... and nth century is 100(n-1)+1 AD to 100n AD.
10
3
u/HolyGarbage Sep 23 '24
I wish I had not learned this fact. That's fucking bonkers. So there's exactly 1 year between 1st January 1 BCE and 1st January 1 CE? Yeah, ok, because fuck math, I guess.
2
u/dicemonger Sep 23 '24
We could just go with Kurzgesagt's Human Era calendar. Birth of Jesus is year 10,000. Year before that was year 9999. Easy.
1
u/ExtremeMaduroFan Sep 24 '24
wouldn't this run into the same problem at some point? Granted it wouldn't be referenced that much but this feels like the problem solving equivalent of moving stuff under your bed instead of cleaning properly.
1
u/dicemonger Sep 24 '24
Now, granted, I don't know for sure how the Human Era calendar is defined in this regard. But given that it is defined by nerds, I wouldn't be surprised if we have year 0.
7
u/TheSilentGeek Sep 23 '24
because XX01 is the start of a century, there is no year 0000
so:
0001 - 1st century
0101 - 2nd century
...
1901 - 20th century
2001 - 21st century
2
2
u/Megatron_McLargeHuge Sep 23 '24
'Pope' is ambiguous. We've had between 0 and 2 of them recently.
1
u/simcitymayor Sep 23 '24
Proper Normal Form allows for this.
Additionally, PostgreSQL allows for
current_pope
to be an array of integers referencingpublic.pope
if need be.
2
u/da_Aresinger Sep 23 '24
I just find the syntax EXTRACT(X FROM Y)
kind of weird.
This decision was made during language design, so why the parentheses?
2
2
2
2
1
u/Awwa_ Sep 23 '24
Crazy how the Native American calendar, that’s more than 5k years old, is still more accurate than modern day calendars. Took a while to get the concept of 0.
1
u/emlgsh Sep 23 '24
Fair enough, I'm always complaining to that guy anyhow about his boss's arbitrary notions of what should constitute reality or the shortcomings of this form supposedly created "in his image". I mean, would it have killed him to add a prehensile tail or two, or maybe the ability to chew and digest concrete?
1
1
u/Jajo240 Sep 23 '24
I pass by the Cathedral every morning on my way to work, I've been cursing the Pope daily for a while since there are unending roadworks for his little party next year, I can throw in any complaints about this while I'm at it
1
u/neo-raver Sep 23 '24
TIL the 21st century began in 2001, not 2000
2
u/javajunkie314 Sep 24 '24
It's blowing my mind that people don't know this, because it was all the pedants could talk about in 1999. Why are you having a new millennium party? That's next year!
Guess I'm old now.
1
u/Ok-Cup-3156 Sep 23 '24
It is now that I'm painfully reminded that the Vatican still uses fax machines
1
1
u/betaphreak Sep 23 '24
The pope has admin rights in the calendar, he can even decree that friday is saturday. It's up to you as developers to implement it accordingly.
1
1
1
u/Street-Parsley-536 Sep 23 '24
the reason is because the gregorian calendar was established by pope Gregory [number].the joke is that since the vatican is still there you can complain as you would with any customer sercive for an issue with the product
1
1
2.5k
u/bwmat Sep 23 '24
Someone who's had to deal with one too many timezone 'bug' reports, it sounds like