/[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.33 by smarothy, Sun Jan 23 17:39:36 2005 UTC revision 1.34 by smarothy, Tue Feb 1 14:16:00 2005 UTC
# Line 679  public abstract class Calendar implement Line 679  public abstract class Calendar implement
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:
# Line 698  public abstract class Calendar implement Line 745  public abstract class Calendar implement
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:
# Line 775  public abstract class Calendar implement Line 823  public abstract class Calendar implement
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    /**    /**

Legend:
Removed from v.1.33  
changed lines
  Added in v.1.34

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