< prev index next >

src/java.base/share/classes/java/util/GregorianCalendar.java

Print this page




 381      * Value of the <code>ERA</code> field indicating
 382      * the common era (Anno Domini), also known as CE.
 383      * The sequence of years at the transition from <code>BC</code> to <code>AD</code> is
 384      * ..., 2 BC, 1 BC, 1 AD, 2 AD,...
 385      *
 386      * @see #ERA
 387      */
 388     public static final int AD = 1;
 389 
 390     /**
 391      * Value of the {@link #ERA} field indicating
 392      * the common era, the same value as {@link #AD}.
 393      *
 394      * @see #BCE
 395      */
 396     static final int CE = 1;
 397 
 398     private static final int EPOCH_OFFSET   = 719163; // Fixed date of January 1, 1970 (Gregorian)
 399     private static final int EPOCH_YEAR     = 1970;
 400 
 401     static final int MONTH_LENGTH[]
 402         = {31,28,31,30,31,30,31,31,30,31,30,31}; // 0-based
 403     static final int LEAP_MONTH_LENGTH[]
 404         = {31,29,31,30,31,30,31,31,30,31,30,31}; // 0-based
 405 
 406     // Useful millisecond constants.  Although ONE_DAY and ONE_WEEK can fit
 407     // into ints, they must be longs in order to prevent arithmetic overflow
 408     // when performing (bug 4173516).
 409     private static final int  ONE_SECOND = 1000;
 410     private static final int  ONE_MINUTE = 60*ONE_SECOND;
 411     private static final int  ONE_HOUR   = 60*ONE_MINUTE;
 412     private static final long ONE_DAY    = 24*ONE_HOUR;
 413     private static final long ONE_WEEK   = 7*ONE_DAY;
 414 
 415     /*
 416      * <pre>
 417      *                            Greatest       Least
 418      * Field name        Minimum   Minimum     Maximum     Maximum
 419      * ----------        -------   -------     -------     -------
 420      * ERA                     0         0           1           1
 421      * YEAR                    1         1   292269054   292278994
 422      * MONTH                   0         0          11          11
 423      * WEEK_OF_YEAR            1         1          52*         53
 424      * WEEK_OF_MONTH           0         0           4*          6
 425      * DAY_OF_MONTH            1         1          28*         31
 426      * DAY_OF_YEAR             1         1         365*        366
 427      * DAY_OF_WEEK             1         1           7           7
 428      * DAY_OF_WEEK_IN_MONTH    1         1           4*          6
 429      * AM_PM                   0         0           1           1
 430      * HOUR                    0         0          11          11
 431      * HOUR_OF_DAY             0         0          23          23
 432      * MINUTE                  0         0          59          59
 433      * SECOND                  0         0          59          59
 434      * MILLISECOND             0         0         999         999
 435      * ZONE_OFFSET        -13:00    -13:00       14:00       14:00
 436      * DST_OFFSET           0:00      0:00        0:20        2:00
 437      * </pre>
 438      * *: depends on the Gregorian change date
 439      */
 440     static final int MIN_VALUES[] = {
 441         BCE,            // ERA
 442         1,              // YEAR
 443         JANUARY,        // MONTH
 444         1,              // WEEK_OF_YEAR
 445         0,              // WEEK_OF_MONTH
 446         1,              // DAY_OF_MONTH
 447         1,              // DAY_OF_YEAR
 448         SUNDAY,         // DAY_OF_WEEK
 449         1,              // DAY_OF_WEEK_IN_MONTH
 450         AM,             // AM_PM
 451         0,              // HOUR
 452         0,              // HOUR_OF_DAY
 453         0,              // MINUTE
 454         0,              // SECOND
 455         0,              // MILLISECOND
 456         -13*ONE_HOUR,   // ZONE_OFFSET (UNIX compatibility)
 457         0               // DST_OFFSET
 458     };
 459     static final int LEAST_MAX_VALUES[] = {
 460         CE,             // ERA
 461         292269054,      // YEAR
 462         DECEMBER,       // MONTH
 463         52,             // WEEK_OF_YEAR
 464         4,              // WEEK_OF_MONTH
 465         28,             // DAY_OF_MONTH
 466         365,            // DAY_OF_YEAR
 467         SATURDAY,       // DAY_OF_WEEK
 468         4,              // DAY_OF_WEEK_IN
 469         PM,             // AM_PM
 470         11,             // HOUR
 471         23,             // HOUR_OF_DAY
 472         59,             // MINUTE
 473         59,             // SECOND
 474         999,            // MILLISECOND
 475         14*ONE_HOUR,    // ZONE_OFFSET
 476         20*ONE_MINUTE   // DST_OFFSET (historical least maximum)
 477     };
 478     static final int MAX_VALUES[] = {
 479         CE,             // ERA
 480         292278994,      // YEAR
 481         DECEMBER,       // MONTH
 482         53,             // WEEK_OF_YEAR
 483         6,              // WEEK_OF_MONTH
 484         31,             // DAY_OF_MONTH
 485         366,            // DAY_OF_YEAR
 486         SATURDAY,       // DAY_OF_WEEK
 487         6,              // DAY_OF_WEEK_IN
 488         PM,             // AM_PM
 489         11,             // HOUR
 490         23,             // HOUR_OF_DAY
 491         59,             // MINUTE
 492         59,             // SECOND
 493         999,            // MILLISECOND
 494         14*ONE_HOUR,    // ZONE_OFFSET
 495         2*ONE_HOUR      // DST_OFFSET (double summer time)
 496     };
 497 
 498     // Proclaim serialization compatibility with JDK 1.1




 381      * Value of the <code>ERA</code> field indicating
 382      * the common era (Anno Domini), also known as CE.
 383      * The sequence of years at the transition from <code>BC</code> to <code>AD</code> is
 384      * ..., 2 BC, 1 BC, 1 AD, 2 AD,...
 385      *
 386      * @see #ERA
 387      */
 388     public static final int AD = 1;
 389 
 390     /**
 391      * Value of the {@link #ERA} field indicating
 392      * the common era, the same value as {@link #AD}.
 393      *
 394      * @see #BCE
 395      */
 396     static final int CE = 1;
 397 
 398     private static final int EPOCH_OFFSET   = 719163; // Fixed date of January 1, 1970 (Gregorian)
 399     private static final int EPOCH_YEAR     = 1970;
 400 
 401     static final int[] MONTH_LENGTH
 402         = {31,28,31,30,31,30,31,31,30,31,30,31}; // 0-based
 403     static final int[] LEAP_MONTH_LENGTH
 404         = {31,29,31,30,31,30,31,31,30,31,30,31}; // 0-based
 405 
 406     // Useful millisecond constants.  Although ONE_DAY and ONE_WEEK can fit
 407     // into ints, they must be longs in order to prevent arithmetic overflow
 408     // when performing (bug 4173516).
 409     private static final int  ONE_SECOND = 1000;
 410     private static final int  ONE_MINUTE = 60*ONE_SECOND;
 411     private static final int  ONE_HOUR   = 60*ONE_MINUTE;
 412     private static final long ONE_DAY    = 24*ONE_HOUR;
 413     private static final long ONE_WEEK   = 7*ONE_DAY;
 414 
 415     /*
 416      * <pre>
 417      *                            Greatest       Least
 418      * Field name        Minimum   Minimum     Maximum     Maximum
 419      * ----------        -------   -------     -------     -------
 420      * ERA                     0         0           1           1
 421      * YEAR                    1         1   292269054   292278994
 422      * MONTH                   0         0          11          11
 423      * WEEK_OF_YEAR            1         1          52*         53
 424      * WEEK_OF_MONTH           0         0           4*          6
 425      * DAY_OF_MONTH            1         1          28*         31
 426      * DAY_OF_YEAR             1         1         365*        366
 427      * DAY_OF_WEEK             1         1           7           7
 428      * DAY_OF_WEEK_IN_MONTH    1         1           4*          6
 429      * AM_PM                   0         0           1           1
 430      * HOUR                    0         0          11          11
 431      * HOUR_OF_DAY             0         0          23          23
 432      * MINUTE                  0         0          59          59
 433      * SECOND                  0         0          59          59
 434      * MILLISECOND             0         0         999         999
 435      * ZONE_OFFSET        -13:00    -13:00       14:00       14:00
 436      * DST_OFFSET           0:00      0:00        0:20        2:00
 437      * </pre>
 438      * *: depends on the Gregorian change date
 439      */
 440     static final int[] MIN_VALUES = {
 441         BCE,            // ERA
 442         1,              // YEAR
 443         JANUARY,        // MONTH
 444         1,              // WEEK_OF_YEAR
 445         0,              // WEEK_OF_MONTH
 446         1,              // DAY_OF_MONTH
 447         1,              // DAY_OF_YEAR
 448         SUNDAY,         // DAY_OF_WEEK
 449         1,              // DAY_OF_WEEK_IN_MONTH
 450         AM,             // AM_PM
 451         0,              // HOUR
 452         0,              // HOUR_OF_DAY
 453         0,              // MINUTE
 454         0,              // SECOND
 455         0,              // MILLISECOND
 456         -13*ONE_HOUR,   // ZONE_OFFSET (UNIX compatibility)
 457         0               // DST_OFFSET
 458     };
 459     static final int[] LEAST_MAX_VALUES = {
 460         CE,             // ERA
 461         292269054,      // YEAR
 462         DECEMBER,       // MONTH
 463         52,             // WEEK_OF_YEAR
 464         4,              // WEEK_OF_MONTH
 465         28,             // DAY_OF_MONTH
 466         365,            // DAY_OF_YEAR
 467         SATURDAY,       // DAY_OF_WEEK
 468         4,              // DAY_OF_WEEK_IN
 469         PM,             // AM_PM
 470         11,             // HOUR
 471         23,             // HOUR_OF_DAY
 472         59,             // MINUTE
 473         59,             // SECOND
 474         999,            // MILLISECOND
 475         14*ONE_HOUR,    // ZONE_OFFSET
 476         20*ONE_MINUTE   // DST_OFFSET (historical least maximum)
 477     };
 478     static final int[] MAX_VALUES = {
 479         CE,             // ERA
 480         292278994,      // YEAR
 481         DECEMBER,       // MONTH
 482         53,             // WEEK_OF_YEAR
 483         6,              // WEEK_OF_MONTH
 484         31,             // DAY_OF_MONTH
 485         366,            // DAY_OF_YEAR
 486         SATURDAY,       // DAY_OF_WEEK
 487         6,              // DAY_OF_WEEK_IN
 488         PM,             // AM_PM
 489         11,             // HOUR
 490         23,             // HOUR_OF_DAY
 491         59,             // MINUTE
 492         59,             // SECOND
 493         999,            // MILLISECOND
 494         14*ONE_HOUR,    // ZONE_OFFSET
 495         2*ONE_HOUR      // DST_OFFSET (double summer time)
 496     };
 497 
 498     // Proclaim serialization compatibility with JDK 1.1


< prev index next >