Skip to content

Commit

Permalink
#23: Zeitraum.von(..) und .bis(..) hinzugefügt
Browse files Browse the repository at this point in the history
  • Loading branch information
Oli B committed Oct 4, 2024
1 parent 578cc9a commit e032d9f
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 6 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ Aus Gründen der Übersichtlichkeit sind bei älteren Versionen die einzelnen Pa
## [Planned]
- Speichervergleich BigDecimal zu PackedDecimal

## [Unreleased]
### Added
- weitere Unterstützung für offene Zeiträume
([#23](https://github.com/oboehm/jfachwert/issues/23))

## [6.0.1] - 2024-09-30
### Fixed
- Kompatibilität zur alten Geldbetrag-Klassen aus dem bank-Package (jetzt: money-Modul) erhöht
Expand Down
22 changes: 21 additions & 1 deletion domains/zeit/src/main/kotlin/de/jfachwert/zeit/Zeitraum.kt
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ import java.util.*
*/
@JsonSerialize(using = ToFachwertSerializer::class)
open class Zeitraum
constructor(val von: Zeitpunkt, val bis: Zeitpunkt) : KFachwert {
constructor(val von: Zeitpunkt = Zeitpunkt.MIN, val bis: Zeitpunkt = Zeitpunkt.MAX) : KFachwert {

/**
* Zerlegt den uebergebenen String in zwei Zeitpunkte "von" und "bis".
Expand Down Expand Up @@ -220,6 +220,26 @@ constructor(val von: Zeitpunkt, val bis: Zeitpunkt) : KFachwert {
return WEAK_CACHE.computeIfAbsent(pair) { Zeitraum(pair.first, pair.second) }
}

/**
* Liefert einen Zeitraum vom gegebenen Start-Zeitpunkt.
*
* @param start Start-Zeitpunkt
*/
@JvmStatic
fun von(start: Zeitpunkt): Zeitraum {
return of(start, Zeitpunkt.MAX)
}

/**
* Liefert einen Zeitraum bis zum gegebenen End-Zeitpunkt.
*
* @param end End-Zeitpunkt
*/
@JvmStatic
fun bis(end: Zeitpunkt): Zeitraum {
return of(Zeitpunkt.MIN, end)
}

private fun split(vonbis: String) : Map<String, Zeitpunkt> {
val map: MutableMap<String, Zeitpunkt> = HashMap()
val von = vonbis.substring(0, vonbis.length/2).trim()
Expand Down
16 changes: 11 additions & 5 deletions domains/zeit/src/test/java/de/jfachwert/zeit/ZeitraumTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
* @author oboehm
* @since 5.2 (19.01.24)
*/
public final class ZeitraumTest extends FachwertTest {
final class ZeitraumTest extends FachwertTest {

@Override
protected Zeitraum createFachwert() {
Expand Down Expand Up @@ -87,15 +87,21 @@ void ofLocalDateTime() {
}

@Test
void offenerZeitraumBis() {
Zeitraum zeitraum = Zeitraum.of(Zeitpunkt.now(), null);
void offenerZeitraumVon() {
Zeitpunkt now = Zeitpunkt.now();
Zeitraum zeitraum = Zeitraum.of(now, null);
assertEquals(Zeitpunkt.MAX, zeitraum.getBis());
Zeitraum von = Zeitraum.von(now);
assertEquals(zeitraum, von);
}

@Test
void offenerZeitraumVon() {
Zeitraum zeitraum = Zeitraum.of(null, LocalDateTime.now());
void offenerZeitraumBis() {
Zeitpunkt now = Zeitpunkt.now();
Zeitraum zeitraum = Zeitraum.of(null, now);
assertEquals(Zeitpunkt.MIN, zeitraum.getVon());
Zeitraum bis = Zeitraum.bis(now);
assertEquals(zeitraum, bis);
}

@Test
Expand Down

0 comments on commit e032d9f

Please sign in to comment.