long upper = endWithZone.property(timeUnit).roundCeilingCopy().getMillis();
return new RangeDivisionInfo(timeRange, Days.daysIn(timeRange).getDays() + 1, TimeUnits.DAYS, DateTimeFormat.forPattern("YYYY'-'MMMM'-'dd"), lower, upper);
} else if (Hours.hoursIn(timeRange).isGreaterThan(Hours.THREE)) {
timeUnit = DateTimeFieldType.hourOfDay();
long lower = startWithZone.property(timeUnit).roundFloorCopy().getMillis();
long upper = endWithZone.property(timeUnit).roundCeilingCopy().getMillis();
return new RangeDivisionInfo(timeRange, Hours.hoursIn(timeRange).getHours() + 1, TimeUnits.HOURS, DateTimeFormat.forPattern("YYYY'-'MMMM'-'dd HH"), lower, upper);
} else if (Minutes.minutesIn(timeRange).isGreaterThan(Minutes.THREE)) {
timeUnit = DateTimeFieldType.minuteOfHour();
long lower = startWithZone.property(timeUnit).roundFloorCopy().getMillis();
long upper = endWithZone.property(timeUnit).roundCeilingCopy().getMillis();