680 |
isTimeSet = false; |
isTimeSet = false; |
681 |
fields[field] = value; |
fields[field] = value; |
682 |
isSet[field] = true; |
isSet[field] = true; |
683 |
|
|
684 |
|
// 1 YEAR + MONTH + DAY_OF_MONTH |
685 |
|
// 2 YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK |
686 |
|
// 3 YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK |
687 |
|
// 4 YEAR + DAY_OF_YEAR |
688 |
|
// 5 YEAR + DAY_OF_WEEK + WEEK_OF_YEAR |
689 |
switch (field) |
switch (field) |
690 |
{ |
{ |
691 |
case YEAR: |
case MONTH: // pattern 1,2 or 3 |
692 |
case MONTH: |
isSet[DAY_OF_YEAR] = false; |
693 |
case DATE: |
isSet[WEEK_OF_YEAR] = false; |
694 |
|
break; |
695 |
|
case DAY_OF_MONTH: // pattern 1 |
696 |
|
isSet[YEAR] = true; |
697 |
|
isSet[MONTH] = true; |
698 |
|
isSet[WEEK_OF_MONTH] = true; |
699 |
|
isSet[DAY_OF_WEEK] = false; |
700 |
|
isSet[DAY_OF_WEEK_IN_MONTH] = false; |
701 |
|
isSet[DAY_OF_YEAR] = false; |
702 |
|
isSet[WEEK_OF_YEAR] = false; |
703 |
|
break; |
704 |
|
case WEEK_OF_MONTH: // pattern 2 |
705 |
|
isSet[YEAR] = true; |
706 |
|
isSet[MONTH] = true; |
707 |
|
isSet[DAY_OF_WEEK] = true; |
708 |
|
isSet[DAY_OF_MONTH] = false; |
709 |
|
isSet[DAY_OF_WEEK_IN_MONTH] = false; |
710 |
|
isSet[DAY_OF_YEAR] = false; |
711 |
isSet[WEEK_OF_YEAR] = false; |
isSet[WEEK_OF_YEAR] = false; |
712 |
|
break; |
713 |
|
case DAY_OF_WEEK_IN_MONTH: // pattern 3 |
714 |
|
isSet[YEAR] = true; |
715 |
|
isSet[MONTH] = true; |
716 |
|
isSet[DAY_OF_WEEK] = true; |
717 |
isSet[DAY_OF_YEAR] = false; |
isSet[DAY_OF_YEAR] = false; |
718 |
|
isSet[DAY_OF_MONTH] = false; |
719 |
isSet[WEEK_OF_MONTH] = false; |
isSet[WEEK_OF_MONTH] = false; |
720 |
|
isSet[WEEK_OF_YEAR] = false; |
721 |
|
break; |
722 |
|
case DAY_OF_YEAR: // pattern 4 |
723 |
|
isSet[YEAR] = true; |
724 |
|
isSet[MONTH] = false; |
725 |
|
isSet[WEEK_OF_MONTH] = false; |
726 |
|
isSet[DAY_OF_MONTH] = false; |
727 |
isSet[DAY_OF_WEEK] = false; |
isSet[DAY_OF_WEEK] = false; |
728 |
|
isSet[WEEK_OF_YEAR] = false; |
729 |
|
isSet[DAY_OF_WEEK_IN_MONTH] = false; |
730 |
|
break; |
731 |
|
case WEEK_OF_YEAR: // pattern 5 |
732 |
|
isSet[YEAR] = true; |
733 |
|
isSet[DAY_OF_WEEK] = true; |
734 |
|
isSet[MONTH] = false; |
735 |
|
isSet[DAY_OF_MONTH] = false; |
736 |
|
isSet[WEEK_OF_MONTH] = false; |
737 |
|
isSet[DAY_OF_YEAR] = false; |
738 |
isSet[DAY_OF_WEEK_IN_MONTH] = false; |
isSet[DAY_OF_WEEK_IN_MONTH] = false; |
739 |
break; |
break; |
740 |
case AM_PM: |
case AM_PM: |
741 |
|
isSet[HOUR] = true; |
742 |
isSet[HOUR_OF_DAY] = false; |
isSet[HOUR_OF_DAY] = false; |
743 |
break; |
break; |
744 |
case HOUR_OF_DAY: |
case HOUR_OF_DAY: |
746 |
isSet[HOUR] = false; |
isSet[HOUR] = false; |
747 |
break; |
break; |
748 |
case HOUR: |
case HOUR: |
749 |
|
isSet[AM_PM] = true; |
750 |
isSet[HOUR_OF_DAY] = false; |
isSet[HOUR_OF_DAY] = false; |
751 |
break; |
break; |
752 |
case DST_OFFSET: |
case DST_OFFSET: |
824 |
{ |
{ |
825 |
isTimeSet = false; |
isTimeSet = false; |
826 |
areFieldsSet = false; |
areFieldsSet = false; |
827 |
for (int i = 0; i < FIELD_COUNT; i++) |
|
828 |
{ |
int hour = fields[ZONE_OFFSET] / (60 * 60 * 1000); |
829 |
isSet[i] = false; |
int minute = (fields[ZONE_OFFSET] - 60 * 60 * 1000 * hour) / (60 * 1000); |
830 |
fields[i] = 0; |
int seconds = (fields[ZONE_OFFSET] - 60 * 60 * 1000 * hour |
831 |
} |
- 60 * 1000 * minute) / 1000; |
832 |
|
int millis = fields[ZONE_OFFSET] - 60 * 60 * 1000 * hour |
833 |
|
- 60 * 1000 * minute - seconds * 1000; |
834 |
|
int[] tempFields = |
835 |
|
{ |
836 |
|
1, 1970, JANUARY, 1, 1, 1, 1, THURSDAY, 1, AM, hour, |
837 |
|
hour, minute, seconds, millis, fields[ZONE_OFFSET], |
838 |
|
fields[DST_OFFSET] |
839 |
|
}; |
840 |
|
fields = tempFields; |
841 |
|
for (int i = 0; i < FIELD_COUNT - 2; i++) |
842 |
|
isSet[i] = false; |
843 |
|
isSet[ZONE_OFFSET] = isSet[DST_OFFSET] = true; |
844 |
} |
} |
845 |
|
|
846 |
/** |
/** |