- java.lang.Object
-
- java.lang.Number
-
- org.jooq.types.YearToSecond
-
- All Implemented Interfaces:
Serializable,Comparable<YearToSecond>,Interval
public final class YearToSecond extends Number implements Interval, Comparable<YearToSecond>
A combinedYearToMonth/DayToSecondinterval.Some databases (e.g. PostgreSQL) allow for mixing
YEAR TO MONTHandDAY TO SECONDintervals, despite the many questions such a combination raises. TheYearToSecondtype intends to model such vendor specific intervals.The numeric value of this interval corresponds to its "context free" number of milliseconds. While the
DayToSecondinterval component can provide such a value easily (being independent of time zones, daylight saving times, leap years, or leap seconds), theYearToMonthcomponent cannot. The implemented rules are those of PostgreSQL:- A day has 86400 seconds
- A month has 30 days
- A year has 365.25 days
- A year has 12 months
Examples:
P11Mhas 330 daysP1Y-1Mhas 330 daysP1Yhas 365.25 daysP1Y1Mhas 396.25 days
- Author:
- Lukas Eder
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description YearToSecond(YearToMonth yearToMonth, DayToSecond dayToSecond)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description YearToSecondabs()Get the absolute value of the interval (set its sign to positive)intcompareTo(YearToSecond that)doubledoubleValue()booleanequals(Object obj)floatfloatValue()intgetDays()Get the day-part of this intervalDayToSecondgetDayToSecond()intgetHours()Get the hour-part of this intervalintgetMicro()Get the (truncated) micro-part of this intervalintgetMilli()Get the (truncated) milli-part of this intervalintgetMinutes()Get the minute-part of this intervalintgetMonths()intgetNano()Get the nano-part of this intervalintgetSeconds()Get the second-part of this intervalintgetSign()The sign of the intervalintgetYears()YearToMonthgetYearToMonth()inthashCode()intintValue()longlongValue()YearToSecondneg()Negate the interval (change its sign)DurationtoDuration()Get a duration representation of this interval.StringtoString()static YearToSecondvalueOf(double milli)Load aDoublerepresentation of aINTERVAL YEAR TO SECONDby assuming standard 24 hour days and 60 second minutes.static YearToSecondvalueOf(String string)Parse a string representation of aINTERVAL YEAR TO SECONDstatic YearToSecondvalueOf(Duration duration)Transform aDurationinto aYearToSecondinterval by taking its number of milliseconds.static YearToSecondvalueOf(Period period)Transform aPeriodinto aYearToSecondinterval.-
Methods inherited from class java.lang.Number
byteValue, shortValue
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.jooq.types.Interval
byteValue, shortValue
-
-
-
-
Constructor Detail
-
YearToSecond
public YearToSecond(YearToMonth yearToMonth, DayToSecond dayToSecond)
-
-
Method Detail
-
valueOf
public static YearToSecond valueOf(double milli)
Load aDoublerepresentation of aINTERVAL YEAR TO SECONDby assuming standard 24 hour days and 60 second minutes.- Parameters:
milli- The number of milliseconds as a fractional number- Returns:
- The loaded
INTERVAL DAY TO SECONDobject
-
valueOf
public static YearToSecond valueOf(Duration duration)
Transform aDurationinto aYearToSecondinterval by taking its number of milliseconds.
-
toDuration
public final Duration toDuration()
Description copied from interface:IntervalGet a duration representation of this interval.There is an obvious
Durationrepresentation forDayToSecondintervals. If the interval containsYearMonthinformation, then the corresponding duration will use:- 1 year = 365.25 days
- 1 month = 30 days
This corresponds to PostgreSQL's
EXTRACT(EPOCH FROM my_interval)behaviour.- Specified by:
toDurationin interfaceInterval
-
valueOf
public static YearToSecond valueOf(Period period)
Transform aPeriodinto aYearToSecondinterval.
-
valueOf
public static YearToSecond valueOf(String string)
Parse a string representation of aINTERVAL YEAR TO SECOND- Parameters:
string- A string representation of the form[+|-][years]-[months] [+|-][days] [hours]:[minutes]:[seconds].[fractional seconds]- Returns:
- The parsed
YEAR TO SECONDobject, ornullif the string could not be parsed.
-
neg
public final YearToSecond neg()
Description copied from interface:IntervalNegate the interval (change its sign)
-
abs
public final YearToSecond abs()
Description copied from interface:IntervalGet the absolute value of the interval (set its sign to positive)
-
getYearToMonth
public final YearToMonth getYearToMonth()
-
getDayToSecond
public final DayToSecond getDayToSecond()
-
getYears
public final int getYears()
-
getMonths
public final int getMonths()
-
getDays
public final int getDays()
Get the day-part of this interval
-
getHours
public final int getHours()
Get the hour-part of this interval
-
getMinutes
public final int getMinutes()
Get the minute-part of this interval
-
getSeconds
public final int getSeconds()
Get the second-part of this interval
-
getMilli
public final int getMilli()
Get the (truncated) milli-part of this interval
-
getMicro
public final int getMicro()
Get the (truncated) micro-part of this interval
-
getNano
public final int getNano()
Get the nano-part of this interval
-
getSign
public final int getSign()
Description copied from interface:IntervalThe sign of the interval
-
intValue
public final int intValue()
- Specified by:
intValuein interfaceInterval- Specified by:
intValuein classNumber- See Also:
Number.intValue()
-
longValue
public final long longValue()
- Specified by:
longValuein interfaceInterval- Specified by:
longValuein classNumber- See Also:
Number.longValue()
-
floatValue
public final float floatValue()
- Specified by:
floatValuein interfaceInterval- Specified by:
floatValuein classNumber- See Also:
Number.floatValue()
-
doubleValue
public final double doubleValue()
- Specified by:
doubleValuein interfaceInterval- Specified by:
doubleValuein classNumber- See Also:
Number.doubleValue()
-
compareTo
public final int compareTo(YearToSecond that)
- Specified by:
compareToin interfaceComparable<YearToSecond>
-
-