On 20.11.2006 00:16, Sammy L. wrote:
So, I was playing around a little in Ruby and noticed that |DateTime| is
a subclass of |Date|, yet the method |today| is not defined for it.
First of all this method is a singleton method of instance Date and
these are not inherited the same way as instance methods are.
DateTime.today does not make much sense - after all, what time would you
expect? Instead there is DateTime.now:
Date.methods - DateTime.methods
DateTime.methods - Date.methods
=> [“now”, “valid_time?”]
I can certainly see how it doesn’t make sense to have that method for
that class, but I’m wondering why a Date isn’t a DateTime? I suppose
then we’d be removing the time element, so we’d get the same problem…
but it was just striking is all.
A Date cannot be a DateTime because it lacks time. Consequently
DateTime inherits Date:
=> [Date, Comparable, Object, Kernel]
=> [DateTime, Date, Comparable, Object, Kernel]
Once can certainly argue whether DateTime is a Date or rather has a
Date. But it is definitively clear that Date is not a DateTime simply
because it does not provide the same set of information that DateTime
provides (date and time).