def to_unit_part(unit)
      unit_details = self.class.resolve_unit(unit)

      if unit_details.has_key?(:seconds)
        seconds = self.get(:seconds)
        self.class.div(seconds, unit_details.fetch(:seconds))
      elsif unit_details.has_key?(:months)
        months = self.get(:months)
        self.class.div(months, unit_details.fetch(:months))
      else
        raise "Unit should have key :seconds or :months"
      end
    end
def to_unit_part(unit)
      unit_details = self.class.resolve_unit(unit)

      if unit_details.has_key?(:seconds)
        seconds = self.get(:seconds)
        self.class.div(seconds, unit_details.fetch(:seconds))
      elsif unit_details.has_key?(:months)
        months = self.get(:months)
        self.class.div(months, unit_details.fetch(:months))
      else
        raise "Unit should have key :seconds or :months"
      end
    end
This method is like {#to_unit}, except it does not perform normalization
 first. Put another way, this method is essentially the same as {#to_unit}
 except it does not normalize the value first. It is similar to {#get}
 except that it can be used with non-primitive units as well.

 @example
   (1.year 1.month 365.days).to_unit_part(:month)
   # => 13
   # Returns 13 because that is the number of months contained exactly
   # within the sepcified duration. Since "days" cannot be translated
   # to an exact number of months, they *are not* factored into the result
   # at all.

 (25.months).to_unit_part(:year)
   # => 2
   # Returns 2 becasue that is the number of months contained exactly
   # within the specified duration. Since "years" is essentially an alias
   # for "12 months", months *are* factored into the result.