/[classpath]/classpath/java/util/Calendar.java
ViewVC logotype

Diff of /classpath/java/util/Calendar.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.25.2.7 by gnu_andrew, Mon Jan 24 01:59:54 2005 UTC revision 1.25.2.8 by gnu_andrew, Wed Feb 2 01:56:01 2005 UTC
# Line 680  public abstract class Calendar Line 680  public abstract class Calendar
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:
# Line 699  public abstract class Calendar Line 746  public abstract class Calendar
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:
# Line 776  public abstract class Calendar Line 824  public abstract class Calendar
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    /**    /**

Legend:
Removed from v.1.25.2.7  
changed lines
  Added in v.1.25.2.8

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26