ActiveSupport、Time#minus_with_coercion

>> Time.local(2008, 12, 31) - Time.local(2008, 12, 30)
=> 86400.0
>> require "date"
=> true
>> Time.local(2008, 12, 31) - Date.new(2008, 12, 31)
TypeError: can't convert Date into Float
        from (irb):3:in `-'
        from (irb):3
>> Time.local(2008, 12, 31) - DateTime.new(2008, 12, 31)
TypeError: can't convert DateTime into Float
        from (irb):4:in `-'
        from (irb):4
>> require "rubygems"
=> true
>> require "active_support"
=> true
>> Time.local(2008, 12, 31) - Time.local(2008, 12, 30)
=> 86400.0
>> Time.local(2008, 12, 31) - Date.new(2008, 12, 31)
TypeError: can't convert Date into Float
        from /usr/local/ruby-1.8.6/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/active_support/core_ext/time/calculations.rb:249:in `minus_without_duration'
        from /usr/local/ruby-1.8.6/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/active_support/core_ext/time/calculations.rb:249:in `minus_without_coercion'
        from /usr/local/ruby-1.8.6/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/active_support/core_ext/time/calculations.rb:258:in `-'
        from (irb):8
>> Time.local(2008, 12, 31) - DateTime.new(2008, 12, 31)
=> Thu Jan 01 00:00:00 +0900 1970

Date との差分がなぜ出せない? Date って非推奨???