Feature #15668


stdlib: Date - Time should return the difference in days

Added by foonlyboy (Eike Dierks) over 3 years ago. Updated over 3 years ago.

Target version:


Hi at the ruby/stdlib,

Computing with times and dates is very complicated.
There are so many pitfalls lurking there.

I stumbled about a seemingly simple computation,
involving Date and Time

try: -
=> TypeError: expected numeric

while my naively expected result can done by: -
=> (0/1)

There must be a whole lot of good reasons why Date - Time is not allowed.

I'd like to suggest:

  • improve the error message
  • improve the documentation of #-

For the error message:
TypeError: expected numeric
should be improved to:
Date - Time is not allowed

The documentation of Date should state why this is so problematic.

You might even want to add a principal documentation,
about the handling of Date and Time in ruby

you can't tune a fish

Updated by shevegen (Robert A. Heiler) over 3 years ago

The error message could indeed be improved.

As for the functionality, I think matz may have to decide whether this
may fit to duck typing or not. In my opinion the distinction between
a "date" and a "time" is a bit arbitrary when we think of time as something
keeping track of seconds (and date ultimately the same, just with some
more date-specific handling of code; oddly enough I personally almost
always end up with Time, rather than Date ... but we also have DateTime
which is even stranger).


Also available in: Atom PDF