code: public void setEndRule(int month, int dayOfMonth, int dayOfWeek, int time, boolean after) {
          if (isFrozen()) {
              throw new UnsupportedOperationException("Attempt to modify a frozen SimpleTimeZone instance.");
          }
  
          getSTZInfo().setEnd(month, -1, dayOfWeek, time, dayOfMonth, after);
          setEndRule(month, dayOfMonth, dayOfWeek, time, WALL_TIME, after);
      }
docs: Sets the DST end rule to a weekday before or after a give date within
  a month, e.g., the first Monday on or after the 8th.
  
  @param month         The month in which this rule occurs (0-based).
  @param dayOfMonth    A date within that month (1-based).
  @param dayOfWeek     The day of the week on which this rule occurs.
  @param time          The time of that day (number of millis after midnight)
  when DST ends in local wall time, which is daylight
  time in this case.
  @param after         If true, this rule selects the first dayOfWeek on
  or after dayOfMonth.  If false, this rule selects
  the last dayOfWeek on or before dayOfMonth.
  @throws IllegalArgumentException the month, dayOfMonth,
  dayOfWeek, or time parameters are out of range