Rechnungsmonat

open class Rechnungsmonat : KFachwert, Comparable<Rechnungsmonat>

Vor allem bei Abonnements oder bei wiederkehrenden Gebuehren findet man einen Rechnungsmonat auf der Rechnung. Hier ist nur Monat und Jahr relevant. Entsprechend gibt es auch nur diese Attribute in dieser Klasse.

Der Gueltigkeitsbereich des Rechnungsjahres liegt ca. zwischen 2700 v. Chr. (-2700) bis 2700 n. Chr. (+2700), da intern der Monat und das Jahr speicheroptimiert in 2 Bytes abgelegt wird. Diese duerfte aber fuer die meisten Faelle ausreichend sein.

Mit 0.8 implementiert diese Klasse auch die wichtigsten Methoden von LocalDate. Sie kann damit anstatt der LocalDate-Klasse eingesetzt werden, wenn Monats-Genauigkeit ausreicht.

Author

oboehm

Since

0.3.1 (12.07.2017)

Constructors

Link copied to clipboard
constructor(date: LocalDate = LocalDate.now())

Erzeugt einen gueltigen Rechnungsmonat anhand des uebergebenen LocalDates. Will man ein Rechnungsmonat ueber ein java.util.Date anlegen, muss man es vorher mit java.sql.Date.toLocalDate in ein LocalDate wandeln.

constructor(monat: String)

Erzeugt einen gueltigen Rechnungsmonat. Normalerweise sollte der Monat als "7/2017" angegeben werden, es werden aber auch andere Formate wie "Jul-2017" oder "2017-07-14" unterstuetzt.

constructor(monat: Int, jahr: Int)

Erzeugt einen gueltigen Rechnungsmonat.

constructor(monat: Month, jahr: Int)

Erzeugt einen gueltigen Rechnungsmonat.

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard

Liefert den gleichen Monat im Folgejahr.

Link copied to clipboard

Liefert den Folgemonat.

Link copied to clipboard
val jahr: Int

Liefert das Jahr zurueck.

Link copied to clipboard
val monat: Int

Liefert den Monat zurueck.

Link copied to clipboard

Liefert den gleichen Monat im Vorjahr.

Link copied to clipboard

Liefert den Vormonat.

Functions

Link copied to clipboard

Liefert das Rechnungsatum als LocalDate zurueck. Sollte das Datum als java.util.Date benoetigt werden, kann man es mit java.sql.Date.valueOf konvertieren.

Link copied to clipboard
fun asMonate(): Int

Liefert den Abrechnungsmonat als Anzahl Monate zurueck.

Link copied to clipboard
open operator override fun compareTo(other: Rechnungsmonat): Int

Vergleicht zwei Rechnungsmonate.

Link copied to clipboard
open operator override fun equals(other: Any?): Boolean

Zwei Rechnungsmonat sind gleich, wenn Monat und Jahr gleich sind.

Link copied to clipboard

Diese Methode liefert den ersten Arbeitstag eines Monats. Allerdings werden dabei keine Feiertag beruecksichtigt, sondern nur die Wochenende, die auf einen ersten des Monats fallen, werden berucksichtigt.

Link copied to clipboard

Liefert den ersten Tag eines Rechnungsmonats.

fun ersterTag(wochentag: DayOfWeek): LocalDate

Diese Methode kann verwendet werden, um den ersten Montag im Monat zu bestimmen. Dazu ruft man diese Methode einfach mit DayOfWeek.MONDAY als Parameter auf.

Link copied to clipboard
fun format(pattern: String?, locale: Locale? = Locale.getDefault()): String

Hiermit kann der Rechnungsmonat im gewuenschten Format ausgegeben werden. Als Parameter sind die gleichen Patterns wie beim DateTimeFormatter.ofPattern bzw. java.text.SimpleDateFormat moeglich.

Link copied to clipboard
open override fun hashCode(): Int

Als Hashcode nehmen wir einfach die Nummer des Monats seit Christi Geburt.

Link copied to clipboard
open override fun isValid(): Boolean
Link copied to clipboard

Diese Methode liefert den letzten Arbeitstag eines Monats. Allerdings werden dabei keine Feiertag beruecksichtigt, sondern nur die Wochenende, die auf einen letzten des Monats fallen, werden berucksichtigt.

Link copied to clipboard

Liefert den letzten Tag eines Rechnungsmonats.

fun letzterTag(wochentag: DayOfWeek): LocalDate

Diese Methode kann verwendet werden, um den letzten Freitag im Monat zu bestimmen. Dazu ruft man diese Methode einfach mit DayOfWeek.FRIDAY als Parameter auf.

Link copied to clipboard

Diese Methode liefert den Monat, der um 'months' zurueck liegt. Sie dient dazu, um den Rechnungsmonat auch als Ersatz fuer LocalDate verwenden zu koennen. Deswegen ist der Methodennamen auf Englisch.

Link copied to clipboard

Diese Methode liefert den Rechnungsmonat, der um 'years' zurueck liegt. Sie dient dazu, um den Rechnungsmonat auch als Ersatz fuer LocalDate verwenden zu koennen. Deswegen ist der Methodennamen auf Englisch.

Link copied to clipboard
fun plusMonths(monthsToAdd: Int): Rechnungsmonat

Diese Methode liefert den Monat, der um 'monthsToAdd' in der Zukunft liegt. Sie dient dazu, um den Rechnungsmonat auch als Ersatz fuer LocalDate verwenden zu koennen. Deswegen ist der Methodennamen auf Englisch.

Link copied to clipboard
fun plusYears(yearsToAdd: Int): Rechnungsmonat

Diese Methode liefert den Rechnungsmonat, der um 'yearsToAdd' in der Zukunft liegt. Sie dient dazu, um den Rechnungsmonat auch als Ersatz fuer LocalDate verwenden zu koennen. Deswegen ist der Methodennamen auf Englisch.

Link copied to clipboard
open override fun toMap(): Map<String, Any>
Link copied to clipboard
open override fun toString(): String

Als Ausgabe nehmen wir "7/2017" fuer Juli 2017.