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

Method between

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

Source from the content-addressed store, hash-verified

93 * @throws UnsupportedOperationException wenn ein Zeitpunkt vor 1972 ist
94 */
95 public long between(
96 Moment start,
97 Moment end
98 ) {
99
100 Moment.check1972(start);
101 Moment.check1972(end);
102
103 switch (this) {
104 case SECONDS:
105 long delta = (
106 end.getElapsedTime(TimeScale.UTC)
107 - start.getElapsedTime(TimeScale.UTC));
108 if (delta < 0) {
109 if (end.getNanosecond() > start.getNanosecond()) {
110 delta++;
111 }
112 } else if (delta > 0) {
113 if (end.getNanosecond() < start.getNanosecond()) {
114 delta--;
115 }
116 }
117 return delta;
118 case NANOSECONDS:
119 return MathUtils.safeAdd(
120 MathUtils.safeMultiply(
121 MathUtils.safeSubtract(
122 end.getElapsedTime(TimeScale.UTC),
123 start.getElapsedTime(TimeScale.UTC)
124 ),
125 1000000000
126 ),
127 end.getNanosecond() - start.getNanosecond()
128 );
129 default:
130 throw new UnsupportedOperationException();
131 }
132
133 }
134
135 @Override
136 public double getLength() {

Callers

nothing calls this directly

Calls 6

check1972Method · 0.95
safeAddMethod · 0.95
safeMultiplyMethod · 0.95
safeSubtractMethod · 0.95
getElapsedTimeMethod · 0.65
getNanosecondMethod · 0.65

Tested by

no test coverage detected