Hacker News new | ask | show | jobs
by realo 440 days ago
I cannot imagine any programming language interpret "1/2" as a day and month in that specific context.

It takes a very special mindset to do that, maybe the kind that comes from a junior MBA manager, for example ... and even then I find that farfetched.

It sounds more like one of those things that is observed, but some manager decided it is not high priority enough to fix right away. And then technical debt raises its ugly head.

1 comments

“1/2” is a string. So “1/2”+1 is either an error because of datetype mismatch (which is terrible UX for a spreadsheet or going to mean one of the following to scenarios:

    Date plus a day

    “1/2” concatenates with “1”
The latter is wrong, the former, while unexpected, does kind of make the most sense here.
Excel allows bare strings, so `"1/2" + 1` is a string with embedded quotation marks. So that's a third option for what to do.
True. And that would probably make the most sense too.

A very good point you’ve made there :)

Why would you favour "date plus a day" rather than "number plus a number"?

I agree Excel has to guess, and in isolation guessing that "1/2" should be parsed a date is not a terrible choice, and that parsing the individual components separately is simpler and more predictable than using the full context that it's about to be added to a number. But evaluating to 1.5 would raise few eyebrows.

> Why would you favour "date plus a day" rather than "number plus a number"?

Date is a number though. It’s only when we print them in a human readable way that they become anything else.

Whereas 1/2 is an expression.

Haven't seen "1/21" as an answer yet
An answer where? Not sure I follow
I just wanted to introduce "1/21" as an answer
Ahh I see the confusion now. I suggested it in the comment you were replying to:

> “1/2” concatenates with “1”

…and thought you’d spotted that and was saying others had disagreed with the concatenation way of handling + operators with strings.

"“1/2” concatenates with “1”" != "1/21"