Project

General

Profile

Feature #15668

stdlib: Date - Time should return the difference in days

Added by foonlyboy (Eike Dierks) 8 months ago. Updated 8 months ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:91842]

Description

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

History

Updated by shevegen (Robert A. Heiler) 8 months 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