Class UngewissesDatum

java.lang.Object
de.bund.bva.isyfact.datetime.core.UngewissesDatum

public class UngewissesDatum extends Object
Darstellung eines ungewissen Datums. Ein Datum ist ungewiss, wenn Teile des Datums nicht bekannt sind.

Die Klasse ist zur Verwendung im Anwendungskern gedacht.

  • Method Details

    • leer

      public static UngewissesDatum leer()
      Erstellt ein UngewissesDatum, bei dem kein Wert gesetzt ist.
      Returns:
      ein UngewissesDatum ohne Jahr, Monat oder Tag gesetzt
    • isLeer

      public boolean isLeer()
      Gibt wahr zurück, wenn in diesem UngewissesDatum alle Werte unbekannt sind.
      Returns:
      true wenn alle Werte unbekannt
    • isUngewiss

      public boolean isUngewiss()
      Gibt wahr zurück, wenn in diesem UngewissesDatum mindestens ein Wert unbekannt ist.
      Returns:
      wenn mindestens ein Wert unbekannt
    • of

      public static UngewissesDatum of(int jahr)
      Erstellt ein UngewissesDatum, bei dem nur das Jahr bekannt ist.
      Parameters:
      jahr - das Jahr
      Returns:
      ein UngewissesDatum mit dem Jahr gesetzt
      Throws:
      DateTimeException - wenn jahr einen ungültigen Wert hat
    • of

      public static UngewissesDatum of(int jahr, int monat)
      Erstellt ein UngewissesDatum, bei dem das Jahr und der Monat bekannt sind.
      Parameters:
      jahr - das Jahr
      monat - der Monat
      Returns:
      ein UngewissesDatum mit dem Jahr und Monat gesetzt
      Throws:
      DateTimeException - wenn jahr oder monat einen ungültigen Wert haben
    • of

      public static UngewissesDatum of(int jahr, int monat, int tag)
      Erstellt ein UngewissesDatum, bei dem Jahr, Monat und Tag bekannt sind. Damit ist das Datum nicht mehr ungewiss und kann mit toLocalDate() in ein LocalDate konvertiert werden.
      Parameters:
      jahr - das Jahr
      monat - der Monat
      tag - der Tag
      Returns:
      ein UngewissesDatum mit dem Jahr, Monat und Tag gesetzt
      Throws:
      DateTimeException - wenn jahr, monat oder tag einen ungültigen Wert haben
    • of

      public static UngewissesDatum of(LocalDate vonInklusive, LocalDate bisInklusive)
      Erstellt ein UngewissesDatum bei dem Anfang und Ende des Zeitraums des Datums übergeben werden.
      Parameters:
      vonInklusive - der Anfang des Zeitraums inklusive, nicht null
      bisInklusive - das Ende des Zeitraums inklusive, nicht null
      Returns:
      ein UngewissesDatum mit dem gesetzten Zeitraum
      Throws:
      DateTimeException - wenn vonInklusive vor bisInklusive liegt
    • parse

      public static UngewissesDatum parse(String text)
      Parst ein ungewisses Datum.

      Folgende Formate werden unterstützt:

      FallEingabe mit 0Eingabe mit xInterner Zeitraum
      Tag unbekannt00.05.1966xx.05.19661.5.1966 – 31.5.1966
      Tag und Monat unbekannt00.00.1966xx.xx.19661.1.1966 – 31.12.1966
      Datum komplett unbekannt00.00.0000xx.xx.xxxxnicht gesetzt (null)
      Parameters:
      text - der Text, der geparst werden soll
      Returns:
      das geparste UngewissesDatum
      Throws:
      DateTimeParseException - wenn der Text nicht geparst werden kann
    • getJahr

      public Optional<Integer> getJahr()
      Gibt ein Optional zurück, das das Jahr dieses Datums enthält.
      Returns:
      ein Optional mit dem Jahr, wenn dieses gesetzt ist, sonst ein leeres Optional
    • getMonat

      public Optional<Integer> getMonat()
      Gibt ein Optional zurück, das den Monat dieses Datums enthält. Sind der Anfang und das Ende dieses ungewissen Datums nicht im selben Monat, wird ein leeres Optional zurückgegeben.
      Returns:
      ein Optional mit dem Monat, wenn gesetzt und eindeutig, sonst ein leeres Optional
    • getTag

      public Optional<Integer> getTag()
      Gibt ein Optional zurück, das den Tag dieses Datums enthält. Sind der Anfang und das Ende dieses ungewissen Datums nicht am selben Tag, wird ein leeres Optional zurückgegeben.
      Returns:
      ein Optional mit dem Tag, wenn gesetzt und eindeutig, sonst ein leeres Optional
    • toLocalDate

      public Optional<LocalDate> toLocalDate()
      Gibt ein Optional zurück, das dieses Datum als LocalDate enthält.
      Returns:
      ein Optional mit dem LocalDate, wenn eindeutige Werte gesetzt sind, sonst ein leeres Optional
    • getAnfang

      public LocalDate getAnfang()
      Gibt das LocalDate zurück, das den Anfang des Zeitraums darstellt, der durch dieses UngewissesDatum dargestellt wird.
      Returns:
      der Anfang des Zeitraums als LocalDate
    • getEnde

      public LocalDate getEnde()
      Gibt das LocalDate zurück, das das Ende (inklusive) des Zeitraums darstellt, der durch dieses UngewissesDatum dargestellt wird.
      Returns:
      das Ende (inklusive) des Zeitraums als LocalDate
    • toString

      public String toString()
      Gibt dieses UngewissesDatum als String im Format dd.MM.uuuu zurück. Unbekannte Werte werde mit xx dargestellt, z.B. xx.08.2017. Ist das Datum so nicht darstellbar, wird es als Zeitraum dargestellt, z.B. 10.08.2017 - 31.08.2017.
      Overrides:
      toString in class Object
      Returns:
      Repräsentation dieses UngewissesDatum als String
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object