public final class DayTimeDurationValue extends DurationValue implements Comparable
microseconds, months, negative, seconds
NaN_MATCH_KEY, typeLabel
Constructor and Description |
---|
DayTimeDurationValue(int sign,
int days,
int hours,
int minutes,
long seconds,
int microseconds)
Create a dayTimeDuration given the number of days, hours, minutes, and seconds.
|
Modifier and Type | Method and Description |
---|---|
DurationValue |
add(DurationValue other)
Add two dayTimeDurations
|
int |
compareTo(Object other)
Compare the value to another duration value
|
AtomicValue |
copyAsSubType(AtomicType typeLabel)
Create a copy of this atomic value, with a different type label
|
DecimalValue |
divide(DurationValue other)
Find the ratio between two durations
|
static DayTimeDurationValue |
fromMicroseconds(long microseconds)
Construct a duration value as a number of microseconds.
|
static DayTimeDurationValue |
fromMilliseconds(long milliseconds)
Construct a duration value as a number of milliseconds.
|
static DayTimeDurationValue |
fromSeconds(BigDecimal seconds)
Construct a duration value as a number of seconds.
|
long |
getLengthInMicroseconds()
Get length of duration in microseconds, as a long
|
double |
getLengthInSeconds()
Get length of duration in seconds
|
CharSequence |
getPrimitiveStringValue()
Convert to string
|
BuiltInAtomicType |
getPrimitiveType()
Determine the primitive type of the value.
|
AtomicMatchKey |
getXPathComparable(boolean ordered,
StringCollator collator,
int implicitTimezone)
Get a Comparable value that implements the XPath ordering comparison semantics for this value.
|
static ConversionResult |
makeDayTimeDurationValue(CharSequence s)
Factory method: create a duration value from a supplied string, in
ISO 8601 format [-]PnDTnHnMnS
|
DurationValue |
multiply(double n)
Multiply duration by a number.
|
DurationValue |
negate()
Negate a duration (same as subtracting from zero, but it preserves the type of the original duration)
|
DurationValue |
subtract(DurationValue other)
Subtract two dayTime-durations
|
badDuration, badDuration, equals, getComponent, getDays, getHours, getMicroseconds, getMinutes, getMonths, getSchemaComparable, getSchemaComparable, getSeconds, getTotalMonths, getTotalSeconds, getYears, hashCode, makeDuration, makeDuration, normalizeZeroDuration, signum, simpleInteger
asAtomic, asMapKey, atomize, checkPermittedContents, effectiveBooleanValue, getCanonicalLexicalRepresentation, getCardinality, getItemType, getStringValue, getStringValueCS, getUType, head, identityHashCode, isIdentical, isIdentical, isNaN, itemAt, iterate, iterator, process, setTypeLabel, toString
getLength, reduce, subsequence
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
asAtomic
getLength
reduce, subsequence
public DayTimeDurationValue(int sign, int days, int hours, int minutes, long seconds, int microseconds) throws IllegalArgumentException
sign
- positive number for positive durations, negative for negative duratoinsdays
- number of dayshours
- number of hoursminutes
- number of minutesseconds
- number of secondsmicroseconds
- number of microsecondsIllegalArgumentException
- if the value is out of range; specifically, if the total
number of seconds exceeds 2^63; or if any of the values is negativepublic static ConversionResult makeDayTimeDurationValue(CharSequence s)
s
- the lexical representation of the xs:dayTimeDuration valuepublic AtomicValue copyAsSubType(AtomicType typeLabel)
copyAsSubType
in class DurationValue
typeLabel
- the type label of the new copy. The caller is responsible for checking that
the value actually conforms to this type.public BuiltInAtomicType getPrimitiveType()
getPrimitiveType
in class DurationValue
public CharSequence getPrimitiveStringValue()
getPrimitiveStringValue
in class DurationValue
public double getLengthInSeconds()
getLengthInSeconds
in class DurationValue
public long getLengthInMicroseconds()
public static DayTimeDurationValue fromSeconds(BigDecimal seconds)
seconds
- the number of seconds in the duration. May be negativepublic static DayTimeDurationValue fromMilliseconds(long milliseconds) throws ValidationException
milliseconds
- the number of milliseconds in the duration (may be negative)ValidationException
- if implementation-defined limits are exceeded, specifically
if the total number of seconds exceeds 2^63.public static DayTimeDurationValue fromMicroseconds(long microseconds) throws IllegalArgumentException
microseconds
- the number of microseconds in the duration. The maximum and minimum
limits are such that the number of days in the duration must fit in a 32-bit signed integer.IllegalArgumentException
- if the value is out of range.public DurationValue multiply(double n) throws XPathException
multiply
in class DurationValue
n
- the number to multiply byXPathException
public DecimalValue divide(DurationValue other) throws XPathException
divide
in class DurationValue
other
- the dividendXPathException
public DurationValue add(DurationValue other) throws XPathException
add
in class DurationValue
other
- the duration to be added to this oneXPathException
public DurationValue subtract(DurationValue other) throws XPathException
subtract
in class DurationValue
other
- the duration to be subtracted from this oneXPathException
public DurationValue negate() throws IllegalArgumentException
negate
in class DurationValue
IllegalArgumentException
- in the extremely unlikely event that the duration is one that cannot
be negated (because the limit for positive durations is one second
off from the limit for negative durations)public int compareTo(Object other)
compareTo
in interface Comparable
other
- The other dateTime valueClassCastException
- if the other value is not a DateTimeValue (the parameter
is declared as Object to satisfy the Comparable interface)public AtomicMatchKey getXPathComparable(boolean ordered, StringCollator collator, int implicitTimezone)
getXPathComparable
in class DurationValue
ordered
- true if an ordered comparable is neededcollator
- Collation used for string comparisonimplicitTimezone
- XPath dynamic contextCopyright (c) 2004-2014 Saxonica Limited. All rights reserved.