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 |