code: function buildDateRangeUnits() {
    var methods = {};
    forEach(DURATION_UNITS.split('|'), function(unit, i) {
      var name = unit + 's', mult, fn;
      if (i < 4) {
        fn = function() {
          return rangeEvery(this, unit, true);
        };
      } else {
        mult = MULTIPLIERS[simpleCapitalize(name)];
        fn = function() {
          return trunc((this.end - this.start) / mult);
        };
      }
      methods[name] = fn;
    });
    defineOnPrototype(Range, methods);
  }
docs: *
  @method [dateUnit]()
  @returns Number
  @namespace Range
  @short Returns the span of a date range in the given unit.
  @extra Higher order units ("days" and greater) walk the date to avoid
  discrepancies with ambiguity. Lower order units simply subtract the
  start from the end.
  
  @set
  milliseconds
  seconds
  minutes
  hours
  days
  weeks
  months
  years
  
  @example
  
  janToMay.months()  -> 4
  janToMay.days()    -> 121
  janToMay.hours()   -> 2904
  janToMay.minutes() -> 220320
  
  *