public static int subtractMonths()

in core/src/main/java/org/apache/calcite/avatica/util/DateTimeUtils.java [1231:1262]


  public static int subtractMonths(int date0, int date1) {
    if (date0 < date1) {
      return -subtractMonths(date1, date0);
    }

    int y0 = (int) DateTimeUtils.unixDateExtract(TimeUnitRange.YEAR, date0);
    int m0 = (int) DateTimeUtils.unixDateExtract(TimeUnitRange.MONTH, date0);
    int d0 = (int) DateTimeUtils.unixDateExtract(TimeUnitRange.DAY, date0);

    int y1 = (int) DateTimeUtils.unixDateExtract(TimeUnitRange.YEAR, date1);
    int m1 = (int) DateTimeUtils.unixDateExtract(TimeUnitRange.MONTH, date1);
    int d1 = (int) DateTimeUtils.unixDateExtract(TimeUnitRange.DAY, date1);

    int years = y0 - y1;
    boolean adjust = m0 < m1 || m0 == m1 && d0 < d1;
    if (adjust) {
      years--;
    }

    int months = 12 * years;
    if (adjust) {
      months += 12 - (m1 - m0);
    } else {
      months += m0 - m1;
    }

    if (d0 < d1) {
      months--;
    }

    return months;
  }