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