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

Method between

base/src/main/java/net/time4j/MachineTime.java:1796–1832  ·  view source on GitHub ↗
(
            T start,
            T end
        )

Source from the content-addressed store, hash-verified

1794 //~ Methoden ------------------------------------------------------
1795
1796 @Override
1797 public
1798 <T extends TimePoint<? super TimeUnit, T>> MachineTime<U> between(
1799 T start,
1800 T end
1801 ) {
1802
1803 long secs;
1804 int nanos;
1805
1806 if (
1807 (this.scale == UTC)
1808 && (start instanceof UniversalTime)
1809 ) {
1810 UniversalTime t1 = (UniversalTime) start;
1811 UniversalTime t2 = (UniversalTime) end;
1812 long utc2 = t2.getElapsedTime(UTC);
1813 long utc1 = t1.getElapsedTime(UTC);
1814 if (utc2 < 0 || utc1 < 0) {
1815 throw new UnsupportedOperationException(
1816 "Cannot calculate SI-duration before 1972-01-01.");
1817 }
1818 secs = utc2 - utc1;
1819 nanos = t2.getNanosecond(UTC) - t1.getNanosecond(UTC);
1820 } else if (start instanceof UnixTime) {
1821 UnixTime t1 = (UnixTime) start;
1822 UnixTime t2 = (UnixTime) end;
1823 secs = t2.getPosixTime() - t1.getPosixTime();
1824 nanos = t2.getNanosecond() - t1.getNanosecond();
1825 } else {
1826 throw new UnsupportedOperationException(
1827 "Machine time requires objects of type 'UnixTime'.");
1828 }
1829
1830 return new MachineTime<>(secs, nanos, this.scale);
1831
1832 }
1833
1834 @Override
1835 public Metric<U> reversible() {

Callers

nothing calls this directly

Calls 3

getNanosecondMethod · 0.95
getPosixTimeMethod · 0.95
getElapsedTimeMethod · 0.65

Tested by

no test coverage detected