MCPcopy Create free account
hub / github.com/MenoData/Time4J / between

Method between

base/src/main/java/net/time4j/Moment.java:2646–2705  ·  view source on GitHub ↗
(
            Moment start,
            Moment end
        )

Source from the content-addressed store, hash-verified

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;

Callers

nothing calls this directly

Calls 4

getPosixTimeMethod · 0.65
getNanosecondMethod · 0.65
nameMethod · 0.65
compareToMethod · 0.45

Tested by

no test coverage detected