(
Moment start,
Moment end
)
| 2644 | } |
| 2645 | |
| 2646 | @Override |
| 2647 | public long between( |
| 2648 | Moment start, |
| 2649 | Moment end |
| 2650 | ) { |
| 2651 | |
| 2652 | long delta; |
| 2653 | |
| 2654 | if (this.unit.compareTo(TimeUnit.SECONDS) >= 0) { |
| 2655 | delta = (end.getPosixTime() - start.getPosixTime()); |
| 2656 | if (delta < 0) { |
| 2657 | if (end.getNanosecond() > start.getNanosecond()) { |
| 2658 | delta++; |
| 2659 | } |
| 2660 | } else if (delta > 0) { |
| 2661 | if (end.getNanosecond() < start.getNanosecond()) { |
| 2662 | delta--; |
| 2663 | } |
| 2664 | } |
| 2665 | } else { // MILLIS, MICROS, NANOS |
| 2666 | delta = |
| 2667 | Math.addExact( |
| 2668 | Math.multiplyExact( |
| 2669 | Math.subtractExact( |
| 2670 | end.getPosixTime(), |
| 2671 | start.getPosixTime() |
| 2672 | ), |
| 2673 | MRD |
| 2674 | ), |
| 2675 | end.getNanosecond() - start.getNanosecond() |
| 2676 | ); |
| 2677 | } |
| 2678 | |
| 2679 | switch (this.unit) { |
| 2680 | case DAYS: |
| 2681 | delta = delta / 86400; |
| 2682 | break; |
| 2683 | case HOURS: |
| 2684 | delta = delta / 3600; |
| 2685 | break; |
| 2686 | case MINUTES: |
| 2687 | delta = delta / 60; |
| 2688 | break; |
| 2689 | case SECONDS: |
| 2690 | break; |
| 2691 | case MILLISECONDS: |
| 2692 | delta = delta / MIO; |
| 2693 | break; |
| 2694 | case MICROSECONDS: |
| 2695 | delta = delta / 1000; |
| 2696 | break; |
| 2697 | case NANOSECONDS: |
| 2698 | break; |
| 2699 | default: |
| 2700 | throw new UnsupportedOperationException(this.unit.name()); |
| 2701 | } |
| 2702 | |
| 2703 | return delta; |
nothing calls this directly
no test coverage detected