# File lib/active_support/core_ext/time/calculations.rb, line 275
  def compare_with_coercion(other)
    # if other is an ActiveSupport::TimeWithZone, coerce a Time instance from it so we can do <=> comparison
    other = other.comparable_time if other.respond_to?(:comparable_time)
    if other.acts_like?(:date)
      # other is a Date/DateTime, so coerce self #to_datetime and hand off to DateTime#<=>
      to_datetime.compare_without_coercion(other)
    else
      compare_without_coercion(other)
    end
  end