On 20.11.2006 00:16, Sammy Larbi 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 => ["today"] >> 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.ancestors => [Date, Comparable, Object, Kernel] >> DateTime.ancestors => [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). Kind regards robert