| 362 | * @author Meno Hochschild |
| 363 | */ |
| 364 | @CalendarType("iso8601") |
| 365 | public final class Moment |
| 366 | extends TimePoint<TimeUnit, Moment> |
| 367 | implements UniversalTime, Temporal<UniversalTime>, ThreetenAdapter { |
| 368 | |
| 369 | //~ Statische Felder/Initialisierungen -------------------------------- |
| 370 | |
| 371 | private static final long UTC_GPS_DELTA = |
| 372 | ((1980 - 1972) * 365 + 2 + 5) * 86400 + 9; |
| 373 | private static final long POSIX_UTC_DELTA = |
| 374 | 2 * 365 * 86400; |
| 375 | private static final long POSIX_GPS_DELTA = |
| 376 | POSIX_UTC_DELTA + UTC_GPS_DELTA - 9; // -9 => without leap seconds |
| 377 | private static final long UTC_TAI_DELTA = |
| 378 | ((1972 - 1958) * 365 + 3) * 86400; |
| 379 | |
| 380 | private static final int MIO = 1000_000; |
| 381 | private static final int MRD = 1000_000_000; |
| 382 | private static final int POSITIVE_LEAP_MASK = 0x40000000; |
| 383 | |
| 384 | private static final long MIN_LIMIT; |
| 385 | private static final long MAX_LIMIT; |
| 386 | |
| 387 | static { |
| 388 | long mjdMin = GregorianMath.toMJD(GregorianMath.MIN_YEAR, 1, 1); |
| 389 | long mjdMax = GregorianMath.toMJD(GregorianMath.MAX_YEAR, 12, 31); |
| 390 | |
| 391 | MIN_LIMIT = |
| 392 | EpochDays.UNIX.transform( |
| 393 | mjdMin, |
| 394 | EpochDays.MODIFIED_JULIAN_DATE) |
| 395 | * 86400; |
| 396 | MAX_LIMIT = |
| 397 | EpochDays.UNIX.transform( |
| 398 | mjdMax, |
| 399 | EpochDays.MODIFIED_JULIAN_DATE) |
| 400 | * 86400 + 86399; |
| 401 | } |
| 402 | |
| 403 | private static final Moment MIN = new Moment(MIN_LIMIT, 0, POSIX); |
| 404 | private static final Moment MAX = new Moment(MAX_LIMIT, MRD - 1, POSIX); |
| 405 | |
| 406 | private static final Moment START_LS_CHECK = |
| 407 | new Moment(86400 + POSIX_UTC_DELTA, 0, POSIX); |
| 408 | private static final Set<ChronoElement<?>> HIGH_TIME_ELEMENTS; |
| 409 | private static final Map<ChronoElement<?>, Integer> LOW_TIME_ELEMENTS; |
| 410 | private static final Map<TimeUnit, Double> UNIT_LENGTHS; |
| 411 | |
| 412 | static { |
| 413 | Set<ChronoElement<?>> high = new HashSet<>(); |
| 414 | high.add(HOUR_FROM_0_TO_24); |
| 415 | high.add(DIGITAL_HOUR_OF_DAY); |
| 416 | high.add(DIGITAL_HOUR_OF_AMPM); |
| 417 | high.add(CLOCK_HOUR_OF_DAY); |
| 418 | high.add(CLOCK_HOUR_OF_AMPM); |
| 419 | high.add(AM_PM_OF_DAY); |
| 420 | high.add(MINUTE_OF_HOUR); |
| 421 | high.add(MINUTE_OF_DAY); |
nothing calls this directly
no test coverage detected