From 70b4ece1b13016f39f207e383266cf350c794470 Mon Sep 17 00:00:00 2001 From: Oli B Date: Tue, 27 Feb 2024 07:00:29 +0100 Subject: [PATCH] =?UTF-8?q?of()-Methode=20akzeptiert=20TimeUnit=20als=20zu?= =?UTF-8?q?s=C3=A4tzlichen=20Parameter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/kotlin/de/jfachwert/zeit/Zeitpunkt.kt | 15 ++++++++++++++- .../java/de/jfachwert/zeit/ZeitpunktTest.java | 7 +++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/de/jfachwert/zeit/Zeitpunkt.kt b/src/main/kotlin/de/jfachwert/zeit/Zeitpunkt.kt index aafa10b2..6e61b7df 100644 --- a/src/main/kotlin/de/jfachwert/zeit/Zeitpunkt.kt +++ b/src/main/kotlin/de/jfachwert/zeit/Zeitpunkt.kt @@ -32,6 +32,7 @@ import java.time.format.DateTimeFormatterBuilder import java.time.format.DateTimeParseException import java.time.temporal.ChronoField import java.util.* +import java.util.concurrent.TimeUnit import java.util.logging.Level import java.util.logging.Logger @@ -326,7 +327,7 @@ constructor(t: BigInteger): AbstractFachwert(t) { /** * Liefert einen Zeitpunkt zurueck. * - * @param code beliebige Zahl + * @param code Anzahl ns seit 1.1.1970 * @return der Zeitpunkt */ @JvmStatic @@ -334,6 +335,18 @@ constructor(t: BigInteger): AbstractFachwert(t) { return WEAK_CACHE.computeIfAbsent(code) { n: BigInteger -> Zeitpunkt(n) } } + /** + * Liefert einen Zeitpunkt zurueck. + * + * @param code Anzahl ns seit 1.1.1970 + * @param unit Zeiteinheit + * @return der Zeitpunkt + */ + @JvmStatic + fun of(code: BigInteger, unit: TimeUnit): Zeitpunkt { + return of(code.multiply(BigInteger.valueOf(unit.toNanos(1)))) + } + /** * Liefert einen Zeitpunkt zurueck. * diff --git a/src/test/java/de/jfachwert/zeit/ZeitpunktTest.java b/src/test/java/de/jfachwert/zeit/ZeitpunktTest.java index 0eab6696..1ef7ea69 100644 --- a/src/test/java/de/jfachwert/zeit/ZeitpunktTest.java +++ b/src/test/java/de/jfachwert/zeit/ZeitpunktTest.java @@ -28,6 +28,7 @@ import java.time.ZoneOffset; import java.util.Date; import java.util.Locale; +import java.util.concurrent.TimeUnit; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.lessThanOrEqualTo; @@ -169,6 +170,12 @@ void testOfDate() { assertEquals(Zeitpunkt.EPOCH, z); } + @Test + void testOfTimeUnit() { + Zeitpunkt t1 = Zeitpunkt.of(BigInteger.ONE, TimeUnit.DAYS); + assertEquals(LocalDate.of(1970, 1, 2), t1.toLocalDate()); + } + @Test void testMin() { String s = Zeitpunkt.MIN.toString();