Package org.h2.util
Class IntervalUtils
java.lang.Object
org.h2.util.IntervalUtils
This utility class contains interval conversion functions.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final BigInteger
private static final BigInteger
private static final BigInteger
private static final BigInteger
private static final BigInteger
private static final BigInteger
static final BigInteger
The number of nanoseconds per day as BigInteger.private static final BigInteger
private static final BigInteger
private static final BigInteger
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic StringBuilder
appendInterval
(StringBuilder buff, IntervalQualifier qualifier, boolean negative, long leading, long remaining) Formats interval as a string and appends it to a specified string builder.static long
daysFromInterval
(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns days value of interval, if any.static long
hoursFromInterval
(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns hours value of interval, if any.static ValueInterval
intervalFromAbsolute
(IntervalQualifier qualifier, BigInteger absolute) Converts absolute value to an interval value.private static ValueInterval
intervalFromAbsolute
(IntervalQualifier qualifier, BigInteger absolute, BigInteger divisor) static BigInteger
intervalToAbsolute
(ValueInterval interval) Converts interval value to an absolute value.private static BigInteger
intervalToAbsolute
(ValueInterval interval, BigInteger multiplier) private static BigInteger
intervalToAbsolute
(ValueInterval interval, BigInteger multiplier, BigInteger totalMultiplier) private static long
leadingExact
(BigInteger absolute) static long
minutesFromInterval
(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns minutes value of interval, if any.static long
monthsFromInterval
(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns months value of interval, if any.static long
nanosFromInterval
(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns nanoseconds value of interval, if any.static ValueInterval
parseFormattedInterval
(IntervalQualifier qualifier, String s) Parses the specified string asINTERVAL
value.static ValueInterval
parseInterval
(IntervalQualifier qualifier, boolean negative, String s) Parses the specified string asINTERVAL
value.private static ValueInterval
parseInterval2
(IntervalQualifier qualifier, String s, char ch, int max, boolean negative) private static long
parseIntervalLeading
(String s, int start, int end, boolean negative) private static long
parseIntervalRemaining
(String s, int start, int end, int max) private static long
parseIntervalRemainingSeconds
(String s, int start) private static int
private static int
static boolean
validateInterval
(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Ensures that all fields in interval are valid.static long
yearsFromInterval
(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns years value of interval, if any.
-
Field Details
-
NANOS_PER_SECOND_BI
-
NANOS_PER_MINUTE_BI
-
NANOS_PER_HOUR_BI
-
NANOS_PER_DAY_BI
The number of nanoseconds per day as BigInteger. -
MONTHS_PER_YEAR_BI
-
HOURS_PER_DAY_BI
-
MINUTES_PER_DAY_BI
-
MINUTES_PER_HOUR_BI
-
LEADING_MIN
-
LEADING_MAX
-
-
Constructor Details
-
IntervalUtils
private IntervalUtils()
-
-
Method Details
-
parseFormattedInterval
Parses the specified string asINTERVAL
value.- Parameters:
qualifier
- the default qualifier to use if string does not have ones
- the string with type information to parse- Returns:
- the interval value. Type of value can be different from the specified qualifier.
-
skipWS
-
skipWSEnd
-
parseInterval
Parses the specified string asINTERVAL
value.- Parameters:
qualifier
- the qualifier of intervalnegative
- whether the interval is negatives
- the string to parse- Returns:
- the interval value
-
parseInterval2
private static ValueInterval parseInterval2(IntervalQualifier qualifier, String s, char ch, int max, boolean negative) -
parseIntervalLeading
-
parseIntervalRemaining
-
parseIntervalRemainingSeconds
-
appendInterval
public static StringBuilder appendInterval(StringBuilder buff, IntervalQualifier qualifier, boolean negative, long leading, long remaining) Formats interval as a string and appends it to a specified string builder.- Parameters:
buff
- string builder to append toqualifier
- qualifier of the intervalnegative
- whether interval is negativeleading
- the value of leading fieldremaining
- the value of all remaining fields- Returns:
- the specified string builder
-
intervalToAbsolute
Converts interval value to an absolute value.- Parameters:
interval
- the interval value- Returns:
- absolute value in months for year-month intervals, in nanoseconds for day-time intervals
-
intervalToAbsolute
private static BigInteger intervalToAbsolute(ValueInterval interval, BigInteger multiplier, BigInteger totalMultiplier) -
intervalToAbsolute
-
intervalFromAbsolute
Converts absolute value to an interval value.- Parameters:
qualifier
- the qualifier of intervalabsolute
- absolute value in months for year-month intervals, in nanoseconds for day-time intervals- Returns:
- the interval value
-
intervalFromAbsolute
private static ValueInterval intervalFromAbsolute(IntervalQualifier qualifier, BigInteger absolute, BigInteger divisor) -
leadingExact
-
validateInterval
public static boolean validateInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Ensures that all fields in interval are valid.- Parameters:
qualifier
- qualifiernegative
- whether interval is negativeleading
- value of leading fieldremaining
- values of all remaining fields- Returns:
- fixed value of negative field
-
yearsFromInterval
public static long yearsFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns years value of interval, if any.- Parameters:
qualifier
- qualifiernegative
- whether interval is negativeleading
- value of leading fieldremaining
- values of all remaining fields- Returns:
- years, or 0
-
monthsFromInterval
public static long monthsFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns months value of interval, if any.- Parameters:
qualifier
- qualifiernegative
- whether interval is negativeleading
- value of leading fieldremaining
- values of all remaining fields- Returns:
- months, or 0
-
daysFromInterval
public static long daysFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns days value of interval, if any.- Parameters:
qualifier
- qualifiernegative
- whether interval is negativeleading
- value of leading fieldremaining
- values of all remaining fields- Returns:
- days, or 0
-
hoursFromInterval
public static long hoursFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns hours value of interval, if any.- Parameters:
qualifier
- qualifiernegative
- whether interval is negativeleading
- value of leading fieldremaining
- values of all remaining fields- Returns:
- hours, or 0
-
minutesFromInterval
public static long minutesFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns minutes value of interval, if any.- Parameters:
qualifier
- qualifiernegative
- whether interval is negativeleading
- value of leading fieldremaining
- values of all remaining fields- Returns:
- minutes, or 0
-
nanosFromInterval
public static long nanosFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns nanoseconds value of interval, if any.- Parameters:
qualifier
- qualifiernegative
- whether interval is negativeleading
- value of leading fieldremaining
- values of all remaining fields- Returns:
- nanoseconds, or 0
-