Package org.joda.time.field
Class PreciseDateTimeField
java.lang.Object
org.joda.time.DateTimeField
org.joda.time.field.BaseDateTimeField
org.joda.time.field.PreciseDurationDateTimeField
org.joda.time.field.PreciseDateTimeField
Precise datetime field, composed of two precise duration fields.
This DateTimeField is useful for defining DateTimeFields that are composed
of precise durations, like time of day fields. If either duration field is
imprecise, then an ImpreciseDateTimeField
may be used instead.
PreciseDateTimeField is thread-safe and immutable.
- Since:
- 1.0
- Author:
- Brian S O'Neill, Stephen Colebourne
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionPreciseDateTimeField
(DateTimeFieldType type, DurationField unit, DurationField range) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionlong
addWrapField
(long instant, int amount) Add to the component of the specified time instant, wrapping around within that component if necessary.int
get
(long instant) Get the amount of fractional units from the specified time instant.int
Get the maximum value for the field.int
getRange()
Returns the range of the field in the field's units.Returns the range duration of this field.long
set
(long instant, int value) Set the specified amount of units to the specified time instant.Methods inherited from class org.joda.time.field.PreciseDurationDateTimeField
getDurationField, getMaximumValueForSet, getMinimumValue, getUnitMillis, isLenient, remainder, roundCeiling, roundFloor
Methods inherited from class org.joda.time.field.BaseDateTimeField
add, add, add, addWrapField, addWrapPartial, convertText, getAsShortText, getAsShortText, getAsShortText, getAsShortText, getAsShortText, getAsText, getAsText, getAsText, getAsText, getAsText, getDifference, getDifferenceAsLong, getLeapAmount, getLeapDurationField, getMaximumShortTextLength, getMaximumTextLength, getMaximumValue, getMaximumValue, getMaximumValue, getMinimumValue, getMinimumValue, getMinimumValue, getName, getType, isLeap, isSupported, roundHalfCeiling, roundHalfEven, roundHalfFloor, set, set, set, set, toString
Methods inherited from class org.joda.time.DateTimeField
setExtended
-
Constructor Details
-
PreciseDateTimeField
Constructor.- Parameters:
type
- the field type this field usesunit
- precise unit duration, like "seconds()".range
- precise range duration, preferably a multiple of the unit, like "minutes()".- Throws:
IllegalArgumentException
- if either duration field is impreciseIllegalArgumentException
- if unit milliseconds is less than one or effective value range is less than two.
-
-
Method Details
-
get
public int get(long instant) Get the amount of fractional units from the specified time instant.- Specified by:
get
in classBaseDateTimeField
- Parameters:
instant
- the milliseconds from 1970-01-01T00:00:00Z to query- Returns:
- the amount of fractional units extracted from the input.
-
addWrapField
public long addWrapField(long instant, int amount) Add to the component of the specified time instant, wrapping around within that component if necessary.- Overrides:
addWrapField
in classBaseDateTimeField
- Parameters:
instant
- the milliseconds from 1970-01-01T00:00:00Z to add toamount
- the amount of units to add (can be negative).- Returns:
- the updated time instant.
-
set
public long set(long instant, int value) Set the specified amount of units to the specified time instant.- Overrides:
set
in classPreciseDurationDateTimeField
- Parameters:
instant
- the milliseconds from 1970-01-01T00:00:00Z to set invalue
- value of units to set.- Returns:
- the updated time instant.
- Throws:
IllegalArgumentException
- if value is too large or too small.
-
getRangeDurationField
Returns the range duration of this field. For example, if this field represents "minute of hour", then the range duration field is an hours.- Specified by:
getRangeDurationField
in classBaseDateTimeField
- Returns:
- the range duration of this field, or null if field has no range
-
getMaximumValue
public int getMaximumValue()Get the maximum value for the field.- Specified by:
getMaximumValue
in classBaseDateTimeField
- Returns:
- the maximum value
-
getRange
public int getRange()Returns the range of the field in the field's units.For example, 60 for seconds per minute. The field is allowed values from 0 to range - 1.
- Returns:
- unit range
-