if (! isSet[DAY_OF_WEEK]) fields[DAY_OF_WEEK] = getFirstDayOfWeek();
  public void set(int field, int value)  {    if (isTimeSet)      for (int i = 0; i < FIELD_COUNT; i++)	isSet[i] = false;		isTimeSet = false;		fields[field] = value;		isSet[field] = true;    // The five valid date patterns, in order of priority    // 1  YEAR + MONTH + DAY_OF_MONTH    // 2  YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK    // 3  YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK    // 4  YEAR + DAY_OF_YEAR    // 5  YEAR + DAY_OF_WEEK + WEEK_OF_YEAR    switch (field)      {      case MONTH: // pattern 1,2 or 3	isSet[DAY_OF_YEAR] = false;	isSet[WEEK_OF_YEAR] = false;	break;      case DAY_OF_MONTH: // pattern 1	isSet[YEAR] = true;	isSet[MONTH] = true;	isSet[WEEK_OF_MONTH] = true;	isSet[DAY_OF_WEEK] = false;	isSet[DAY_OF_WEEK_IN_MONTH] = false;	isSet[DAY_OF_YEAR] = false;	isSet[WEEK_OF_YEAR] = false;	break;      case WEEK_OF_MONTH: // pattern 2	isSet[YEAR] = true;	isSet[MONTH] = true;	isSet[DAY_OF_WEEK] = true;	isSet[DAY_OF_MONTH] = false;	isSet[DAY_OF_WEEK_IN_MONTH] = false;	isSet[DAY_OF_YEAR] = false;				isSet[WEEK_OF_YEAR] = false;	break;      case DAY_OF_WEEK_IN_MONTH: // pattern 3	isSet[YEAR] = true;	isSet[MONTH] = true;	isSet[DAY_OF_WEEK] = true;				isSet[DAY_OF_YEAR] = false;	isSet[DAY_OF_MONTH] = false;	isSet[WEEK_OF_MONTH] = false;	isSet[WEEK_OF_YEAR] = false;	break;      case DAY_OF_YEAR: // pattern 4	isSet[YEAR] = true;	isSet[MONTH] = false;				isSet[WEEK_OF_MONTH] = false;	isSet[DAY_OF_MONTH] = false;				isSet[DAY_OF_WEEK] = false;	isSet[WEEK_OF_YEAR] = false;	isSet[DAY_OF_WEEK_IN_MONTH] = false;	break;      case WEEK_OF_YEAR: // pattern 5	isSet[YEAR] = true;	isSet[DAY_OF_WEEK] = true;	isSet[MONTH] = false;	isSet[DAY_OF_MONTH] = false;	isSet[WEEK_OF_MONTH] = false;	isSet[DAY_OF_YEAR] = false;				isSet[DAY_OF_WEEK_IN_MONTH] = false;				break;      case AM_PM:	isSet[HOUR] = true;				isSet[HOUR_OF_DAY] = false;				break;      case HOUR_OF_DAY:				isSet[AM_PM] = false;				isSet[HOUR] = false;				break;      case HOUR:	isSet[AM_PM] = true;				isSet[HOUR_OF_DAY] = false;				break;      case DST_OFFSET:        explicitDSTOffset = true;		}    // May have crossed over a DST boundary.    if (! explicitDSTOffset && (field != DST_OFFSET && field != ZONE_OFFSET))      isSet[DST_OFFSET] = false;	}