Issue #15668 has been updated by shevegen (Robert A. Heiler).


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).

----------------------------------------
Feature #15668: stdlib: Date - Time should return the difference in days
https://bugs.ruby-lang.org/issues/15668#change-77115

* Author: foonlyboy (Eike Dierks)
* Status: Open
* Priority: Normal
* Assignee: 
* 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:
Date.today - Time.now
=> TypeError: expected numeric

while my naively expected result can done by:
Date.today - Time.now.to_date
=> (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

















-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>