684 |
fields[field] = value; |
fields[field] = value; |
685 |
isSet[field] = true; |
isSet[field] = true; |
686 |
|
|
687 |
// The five valid date patterns, in order of validity |
// The five valid date patterns, in order of priority |
688 |
// 1 YEAR + MONTH + DAY_OF_MONTH |
// 1 YEAR + MONTH + DAY_OF_MONTH |
689 |
// 2 YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK |
// 2 YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK |
690 |
// 3 YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK |
// 3 YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK |
828 |
{ |
{ |
829 |
isTimeSet = false; |
isTimeSet = false; |
830 |
areFieldsSet = false; |
areFieldsSet = false; |
831 |
|
int zoneOffs = zone.getRawOffset(); |
832 |
|
|
833 |
int hour = fields[ZONE_OFFSET] / (60 * 60 * 1000); |
int hour = zoneOffs / (60 * 60 * 1000); |
834 |
int minute = (fields[ZONE_OFFSET] - 60 * 60 * 1000 * hour) / (60 * 1000); |
int minute = (zoneOffs - 60 * 60 * 1000 * hour) / (60 * 1000); |
835 |
int seconds = (fields[ZONE_OFFSET] - 60 * 60 * 1000 * hour |
int seconds = (zoneOffs - 60 * 60 * 1000 * hour - 60 * 1000 * minute) / 1000; |
836 |
- 60 * 1000 * minute) / 1000; |
int millis = zoneOffs - 60 * 60 * 1000 * hour - 60 * 1000 * minute |
837 |
int millis = fields[ZONE_OFFSET] - 60 * 60 * 1000 * hour |
- seconds * 1000; |
|
- 60 * 1000 * minute - seconds * 1000; |
|
838 |
int[] tempFields = |
int[] tempFields = |
839 |
{ |
{ |
840 |
1, 1970, JANUARY, 1, 1, 1, 1, THURSDAY, 1, AM, hour, |
1, 1970, JANUARY, 1, 1, 1, 1, THURSDAY, 1, AM, hour, |
841 |
hour, minute, seconds, millis, fields[ZONE_OFFSET], |
hour, minute, seconds, millis, zoneOffs, 0 |
|
fields[DST_OFFSET] |
|
842 |
}; |
}; |
843 |
fields = tempFields; |
fields = tempFields; |
844 |
for (int i = 0; i < FIELD_COUNT - 2; i++) |
for (int i = 0; i < FIELD_COUNT; i++) |
845 |
isSet[i] = false; |
isSet[i] = false; |
|
isSet[ZONE_OFFSET] = isSet[DST_OFFSET] = true; |
|
846 |
} |
} |
847 |
|
|
848 |
/** |
/** |
854 |
*/ |
*/ |
855 |
public final void clear(int field) |
public final void clear(int field) |
856 |
{ |
{ |
857 |
|
int[] tempFields = |
858 |
|
{ |
859 |
|
1, 1970, JANUARY, 1, 1, 1, 1, THURSDAY, 1, AM, 0, 0, 0, |
860 |
|
0, 0, zone.getRawOffset(), 0 |
861 |
|
}; |
862 |
isTimeSet = false; |
isTimeSet = false; |
863 |
areFieldsSet = false; |
areFieldsSet = false; |
864 |
isSet[field] = false; |
isSet[field] = false; |
865 |
fields[field] = 0; |
fields[field] = tempFields[field]; |
866 |
} |
} |
867 |
|
|
868 |
/** |
/** |