frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Dates That Don't Exist (2015)

https://blog.yossarian.net/2015/06/09/Dates-That-Dont-Exist
28•EndXA•2d ago

Comments

laveur•41m ago
I tried to create a date object in Swift from the date October 5, 1582. The resultant date object was October 15th 1582.
Cthulhu_•21m ago
This is (weirdly) in line with behaviour I've observed in iOS's date picker; if you set a block of dates as not available, and the selected date inside of that unavailable block, it will automatically select the first available date on open.
clord•29m ago
I suppose the Georgian calendar includes this gap officially? Or did the catholic world just jump from system to system? If it includes the gap officially, then yea, error is the right thing. But if we just moved to a new calendar, then arguably there should be no error. both calendars work for all dates continuously, and we could have conversion functions etc. The gap is just a big flag day (week.)

imo, if i am using Georgian i want that system even retroactively, just like projecting a date back into the stone age. I don't care that a particular geography or culture changed calendars.

So I suppose what is really going on is that some libraries are using Georgian consistently, and others are using some hybrid "civic" calendar that tracks what the romans and the catholics were using, so dates in history books make sense.

poizan42•22m ago
The proper name for the calendar using the Gregorian system before the start of the Gregorian calendar is "the proleptic Gregorian calendar".
flotzam•6m ago
And indeed that's Python's calendar:

'A date object represents a date (year, month and day) in an idealized calendar, the current Gregorian calendar indefinitely extended in both directions.'

'This matches the definition of the “proleptic Gregorian” calendar in Dershowitz and Reingold’s book Calendrical Calculations.'

https://docs.python.org/3/library/datetime.html#id2 https://docs.python.org/3/library/datetime.html#id5

Whereas Ruby has proleptic Gregorian Time, but civic DateTime:

https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/DateTime....

bombcar•21m ago
Contracts and other similar types of financial instruments existed by this time there must be some way they handled it because something that said that it happened on a date that never occurred - sounds like what lawyers live for.

I’ll draft a Dubia so that when future popes change the calendar they will include a representative code sample and details about how we handle this.

(It’s important to remember that the pope and friends were operating much more like an international standards body than a religious leader when doing things like this.)

wongarsu•
1313ed01•20m ago
I wonder how many libraries correctly handles the date 1712-02-30 in the Swedish calendar (according to Wikipedia the only official 30th of February in history)?

https://en.wikipedia.org/wiki/List_of_non-standard_dates#Feb...

Tried using ncal like in the examples in that blog post, but it did not work correctly using either Julian or Gregorian. Of course the Swedish calendar from 1700-1712 was neither, but somewhere in-between, because of the (failed) attempt to gradually move from one to the other.

throw0101d•15m ago
> https://en.wikipedia.org/wiki/List_of_non-standard_dates#Feb...

Meta: one can also link to this article, which redirects:

* https://en.wikipedia.org/wiki/February_30

jaculabilis•5m ago
> The Eastern Orthodox church even continued well after that, only switching to the Gregorian calendar in 1929.

Technically, they switched to the Revised Julian[0] calendar, not the Gregorian. Also, it was only some of the churches making up Eastern Orthodoxy that switched; others remain on the Julian calendar to this day, and all of them still use the Julian calendar to calculate the date of Pascha.

[0] https://en.wikipedia.org/wiki/Revised_Julian_calendar

adbachman•2m ago
I ran into this in a Ruby on Rails test suite a few years ago and wrote up my findings here: https://gist.github.com/abachman/f97806e1c0fe8e4e1849e5f8412...

tl;dr - ActiveSupport::TimeWithZone used absolute seconds counting to determine dates while DateTime used a proper Gregorian calendar. This means dates before October 15, 1582 have different internal values when compared.

The behavior showed up because a test was using a DateTime value to set a MySQL DATETIME column to the DB minimum value, which is 1000-01-01 00:00:00, and then comparing the DB record attribute to the original variable used to set it.

Something like:

  date = DateTime.new(1000, 1, 1, 0, 0, 0, 'UTC')
  record.update(happened_at: date)
  record.happened_at == date # => false
I "discovered" the missing Gregorian dates when I wrote a loop counting forward in time from Jan 1, 1000 until the corresponding TimeWithZone and DateTime records returned true when compared with ==.
reaperducer•57s ago
Regarding computers and time, I always liked that in AmigaDOS, you could specify custom relative times.

It would natively display "Future" if the file timestamp was ahead of the system clock, but you could also add dates. I remember seeing directory listings like

  xyzzy.foo 49152 ----rw-d Christmas 1988
4m ago
If a contract dated to the 4th October 1582 specifies you have 15 days to make payment, you would indeed need to know where that contract was signed to determine on what day that deadline expired.

And if there is a contract dated to the 6th October 1582, that does raise questions about its legitimacy (though in general misdating a contract does not void it, it would merely be one point of evidence in your argument that it's a forgery, just like using a particular font in a modern printed contract)

matsemann•7m ago
Think it depends on usage? Taking October 1st and 20th, and you want to know how many days passed, what's the right answer? If it's days lived, you would want the answer to not be 20, as some of those days didn't happen. But in some other context (perhaps something transitioning to the calendar earlier), they did?

Ray Bradbury's "There Will Come Soft Rains" is set today (2026-08-04)

https://short-stories.co/@raybradbury/there-will-come-soft-rains-6k8vr4xxlnmj
299•askvictor•5h ago•111 comments

DeepSeek V4 Flash on a Single AMD MI300X

https://github.com/ryanzhou/deepseek-v4-flash-mi300x
223•zhoutong•5h ago•52 comments

Agent skills that bring team coding standards to Claude Code and Codex

https://github.com/tikalk/adlc-team-skills
23•kanfilior•36m ago•5 comments

Xbox goes down. You can't play games you own on disc

https://birchtree.me/blog/xbox-goes-down-you-cant-play-games-you-own-on-disc/
293•surprisetalk•3h ago•297 comments

Dates That Don't Exist (2015)

https://blog.yossarian.net/2015/06/09/Dates-That-Dont-Exist
29•EndXA•2d ago•13 comments

LLMs reward expertise

https://www.seangoedecke.com/llms-reward-expertise/
1180•MaxMussio•18h ago•490 comments

Keyv and friends compromised in active Shai-Hulud supply chain attack

https://www.aikido.dev/blog/keyv-and-friends-compromised-in-npm-supply-chain-attack
88•cimi_•4h ago•27 comments

FFmpeg 9.0

https://jbkempf.com/blog/2026/ffmpeg-9.0/
7•enz•25m ago•1 comments

Buckminster Fuller: everything I know

https://www.bfi.org/about-fuller/everything-i-know/
64•simonebrunozzi•3h ago•20 comments

Harness Engineering for Self-Improvement

https://lilianweng.github.io/posts/2026-07-04-harness/
176•tosh•8h ago•32 comments

Show HN: Fine-tune an 8B model on a 4 GB laptop GPU

https://github.com/MakazhanAlpamys/Soup
63•MakazhanAlpamys•3h ago•8 comments

Roame (YC S23) Is Hiring Lead Engineer

https://www.ycombinator.com/companies/roame/jobs/mqqfa38-lead-full-stack-engineer
1•zman0225•3h ago

Why Large Language Models Fail at Tabular Prediction

https://arxiv.org/abs/2608.02412
51•sbulaev•5h ago•11 comments

Rebuilding and analysing 4 years of Wordle stats from WhatsApp chat logs

https://blog.omgmog.net/post/rebuilding-wordle-stats-from-whatsapp/
7•surprisetalk•23h ago•1 comments

Why etymologies matter: How tracing words can illuminate history (2024)

https://resobscura.substack.com/p/why-i-love-etymologies
45•benbreen•3d ago•9 comments

"Clean" Code, Horrible Performance (2023)

https://www.computerenhance.com/p/clean-code-horrible-performance
44•FrojoS•5h ago•10 comments

Show HN: Run an 80B Qwen in 4.3 GB of RAM on a Mac, and a 35B on an iPhone

https://github.com/leonickson1/Swiftlet
260•leonickson•22h ago•116 comments

Amazonian civilization had estimated 3M people in 3% of forest area

https://www.science.org/content/article/odd-shapes-hidden-dense-amazon-rainforest-reveal-sprawlin...
224•marojejian•5d ago•158 comments

AI-Generated Images Discourage Me from Reading Your Blog

https://nelson.cloud/ai-generated-images-discourage-me-from-reading-your-blog/
530•meysamazad•3h ago•307 comments

Ten advances in mathematics and theoretical computer science

https://openai.com/index/ten-advances-in-mathematics/
592•milkshakes•22h ago•876 comments

Devtools must be open source

https://blog.exe.dev/devtools-must-be-open-source
671•bryanmikaelian•1d ago•219 comments

Mosh in a Lift (2012)

https://mosh.org/elevator.txt
24•gavide•1d ago•6 comments

Homebench – Benchmark local LLMs for speed, memory, and quality

https://github.com/david-g-3654/homebench
25•davai-g•5h ago•1 comments

There Will Come Soft Rains (1950) [pdf]

https://users.wpi.edu/~zrbutzke/Docs/BradburyStories(1).pdf
263•pmg101•15h ago•96 comments

Learning-Rust.Github.io: Rust Programming Language Tutorials for Everyone

https://learning-rust.github.io
24•dumindunuwan•5h ago•2 comments

Archaeologists Find Ancient Glyphs in the Amazon

https://www.nytimes.com/2026/07/31/world/americas/amazon-archaeology-geoglyphs.html
26•wglb•3d ago•9 comments

Twenty Years of Pandoc

https://pandoc.org/twenty-years-of-pandoc.html
353•fiddlosopher•1d ago•43 comments

That time when I failed the Microsoft interview

https://ochagavia.nl/blog/that-time-when-i-failed-the-microsoft-interview/
106•wofo•6d ago•222 comments

FFmpeg 9.0

https://github.com/FFmpeg/FFmpeg/blob/n9.0/RELEASE_NOTES
346•gyan•5h ago•72 comments

Ask HN: Who is hiring? (August 2026)

211•whoishiring•1d ago•196 comments