int week = onset.getWeek(); if (week < 0) {     mDayOfMonth = week;  mDayOfWeek = onset.getDayOfWeek();
if (onset.hasRule()) { int week = onset.getWeek(); if (week < 0) {     mDayOfMonth = week;  mDayOfWeek = onset.getDayOfWeek(); } else {    mDayOfMonth = (week - 1) * 7 + 1;     mDayOfWeek = -1 * onset.getDayOfWeek(); }
        public SimpleTimeZoneRule(SimpleOnset onset) {            // iCalendar month is 1-based.  Java month is 0-based.            mMonth = onset.getMonth() - 1;            int week = onset.getWeek();            if (week < 0) {                // For specifying day-of-week of last Nth week of month,                // e.g. -2SA for Saturday of 2nd to last week of month,                // java.util.SimpleTimeZone wants negative week number                // in dayOfMonth.                mDayOfMonth = week;                mDayOfWeek = onset.getDayOfWeek();            } else {                // For positive week, onset date is day of week on or                // after day of month.  First week is day 1 through day 7,                // second week is day 8 through day 14, etc.                mDayOfMonth = (week - 1) * 7 + 1;                // Another peculiarity of java.util.SimpleTimeZone class.                // For positive week, day-of-week must be specified as                // a negative value.                mDayOfWeek = -1 * onset.getDayOfWeek();            }            mDtStartMillis =                onset.getHour() * 3600000 + onset.getMinute() * 60000 + onset.getSecond() * 1000;        }