@Test public void testMonthsBetween() throws Exception { int i = 0; assertEquals(getMonthlyCoveringInfo(pairs[i], DateUtils.round(pairs[i + 1], MONTH)), new CoveringInfo(1, true), "2013-Jan-01 to 2013-Jan-31"); i += 2; assertEquals(getMonthlyCoveringInfo(pairs[i], DateUtils.round(pairs[i + 1], MONTH)), new CoveringInfo(5, true), "2013-Jan-01 to 2013-May-31"); i += 2; assertEquals(getMonthlyCoveringInfo(pairs[i], DateUtils.round(pairs[i + 1], MONTH)), new CoveringInfo(12, true), "2013-Jan-01 to 2013-Dec-31"); i += 2; assertEquals(getMonthlyCoveringInfo(pairs[i], pairs[i + 1]), new CoveringInfo(2, false), "2013-Feb-01 to 2013-Apr-25"); i += 2; assertEquals(getMonthlyCoveringInfo(pairs[i], pairs[i + 1]), new CoveringInfo(12, true), "2012-Feb-01 to 2013-Feb-01"); i += 2; assertEquals(getMonthlyCoveringInfo(pairs[i], pairs[i + 1]), new CoveringInfo(24, true), "2011-Feb-01 to 2013-Feb-01"); i += 2; assertEquals(getMonthlyCoveringInfo(pairs[i], pairs[i + 1]), new CoveringInfo(0, false), "2013-Jan-02 to 2013-Feb-02"); i += 2; assertEquals(getMonthlyCoveringInfo(pairs[i], pairs[i + 1]), new CoveringInfo(1, false), "2013-Jan-02 to 2013-Mar-02"); }
public static CoveringInfo getMonthlyCoveringInfo(Date from, Date to) { boolean coverable = true; if (!from.equals(DateUtils.truncate(from, MONTH))) { from = DateUtils.addMonths(DateUtils.truncate(from, MONTH), 1); coverable = false; } if (!to.equals(DateUtils.truncate(to, MONTH))) { to = DateUtils.truncate(to, MONTH); coverable = false; } int months = 0; while (from.before(to)) { from = DateUtils.addMonths(from, 1); months++; } return new CoveringInfo(months, coverable); }
DateUtil { public static CoveringInfo getMonthlyCoveringInfo(Date from, Date to) { boolean coverable = true; if (!from.equals(DateUtils.truncate(from, MONTH))) { from = DateUtils.addMonths(DateUtils.truncate(from, MONTH), 1); coverable = false; } if (!to.equals(DateUtils.truncate(to, MONTH))) { to = DateUtils.truncate(to, MONTH); coverable = false; } int months = 0; while (from.before(to)) { from = DateUtils.addMonths(from, 1); months++; } return new CoveringInfo(months, coverable); } }
DateUtil { public static CoveringInfo getMonthlyCoveringInfo(Date from, Date to) { boolean coverable = true; if (!from.equals(DateUtils.truncate(from, MONTH))) { from = DateUtils.addMonths(DateUtils.truncate(from, MONTH), 1); coverable = false; } if (!to.equals(DateUtils.truncate(to, MONTH))) { to = DateUtils.truncate(to, MONTH); coverable = false; } int months = 0; while (from.before(to)) { from = DateUtils.addMonths(from, 1); months++; } return new CoveringInfo(months, coverable); } private  DateUtil(); }
DateUtil { public static CoveringInfo getMonthlyCoveringInfo(Date from, Date to) { boolean coverable = true; if (!from.equals(DateUtils.truncate(from, MONTH))) { from = DateUtils.addMonths(DateUtils.truncate(from, MONTH), 1); coverable = false; } if (!to.equals(DateUtils.truncate(to, MONTH))) { to = DateUtils.truncate(to, MONTH); coverable = false; } int months = 0; while (from.before(to)) { from = DateUtils.addMonths(from, 1); months++; } return new CoveringInfo(months, coverable); } private  DateUtil(); static String getAbsDateFormatString(String str); static Date resolveDate(String str, Date now); static String relativeToAbsolute(String relative); static String relativeToAbsolute(String relative, Date now); static String formatAbsDate(Date date); static Date resolveAbsoluteDate(final String str); static Date resolveRelativeDate(String str, Date now); static Date getCeilDate(Date date, UpdatePeriod interval); static Date getFloorDate(Date date, UpdatePeriod interval); static CoveringInfo getMonthlyCoveringInfo(Date from, Date to); static CoveringInfo getQuarterlyCoveringInfo(Date from, Date to); static CoveringInfo getYearlyCoveringInfo(Date from, Date to); static CoveringInfo getWeeklyCoveringInfo(Date from, Date to); static int getTimeDiff(Date fromDate, Date toDate, UpdatePeriod updatePeriod); }
DateUtil { public static CoveringInfo getMonthlyCoveringInfo(Date from, Date to) { boolean coverable = true; if (!from.equals(DateUtils.truncate(from, MONTH))) { from = DateUtils.addMonths(DateUtils.truncate(from, MONTH), 1); coverable = false; } if (!to.equals(DateUtils.truncate(to, MONTH))) { to = DateUtils.truncate(to, MONTH); coverable = false; } int months = 0; while (from.before(to)) { from = DateUtils.addMonths(from, 1); months++; } return new CoveringInfo(months, coverable); } private  DateUtil(); static String getAbsDateFormatString(String str); static Date resolveDate(String str, Date now); static String relativeToAbsolute(String relative); static String relativeToAbsolute(String relative, Date now); static String formatAbsDate(Date date); static Date resolveAbsoluteDate(final String str); static Date resolveRelativeDate(String str, Date now); static Date getCeilDate(Date date, UpdatePeriod interval); static Date getFloorDate(Date date, UpdatePeriod interval); static CoveringInfo getMonthlyCoveringInfo(Date from, Date to); static CoveringInfo getQuarterlyCoveringInfo(Date from, Date to); static CoveringInfo getYearlyCoveringInfo(Date from, Date to); static CoveringInfo getWeeklyCoveringInfo(Date from, Date to); static int getTimeDiff(Date fromDate, Date toDate, UpdatePeriod updatePeriod); static final String UNIT; static final Date MAX_DATE; static final Date MIN_DATE; static final String GRANULARITY; static final String RELATIVE; static final Pattern P_RELATIVE; static final String WSPACE; static final String OPTIONAL_WSPACE; static final String SIGNAGE; static final Pattern P_SIGNAGE; static final String QUANTITY; static final Pattern P_QUANTITY; static final Pattern P_UNIT; static final String RELDATE_VALIDATOR_STR; static final Pattern RELDATE_VALIDATOR; static final Pattern TIMESTAMP_VALIDATOR; static final String YEAR_FMT; static final String MONTH_FMT; static final String DAY_FMT; static final String HOUR_FMT; static final String MINUTE_FMT; static final String SECOND_FMT; static final String MILLISECOND_FMT; static final String ABSDATE_FMT; static final String HIVE_QUERY_DATE_FMT; static final ThreadLocal<DateFormat> ABSDATE_PARSER; static final ThreadLocal<DateFormat> HIVE_QUERY_DATE_PARSER; }