Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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

    public class PreciseDateTimeField

extends PreciseDurationDateTimeField

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:
  `ImpreciseDateTimeField`

Constructor Summary
`PreciseDateTimeField(DateTimeFieldType type, DurationField unit, DurationField range)` Constructor.

Method Summary
`long` | `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` | `getMaximumValue()` Get the maximum value for the field.
`int` | `getRange()` Returns the range of the field in the field's units.
`DurationField` | `getRangeDurationField()` 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 java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### PreciseDateTimeField

    public PreciseDateTimeField(DateTimeFieldType type,
                                DurationField unit,
                                DurationField range)

  Constructor.

  Parameters:
    `type` - the field type this field uses
    `unit` - precise unit duration, like "seconds()".
    `range` - precise range duration, preferably a multiple of the unit, like "minutes()".
  Throws:
    `java.lang.IllegalArgumentException` - if either duration field is imprecise
    `java.lang.IllegalArgumentException` - if unit milliseconds is less than one or effective value range is less than two.

Method Detail

### get

    public int get(long instant)

  Get the amount of fractional units from the specified time instant.

  Specified by:
    `get` in class `BaseDateTimeField`
  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 class `BaseDateTimeField`
  Parameters:
    `instant` - the milliseconds from 1970-01-01T00:00:00Z to add to
    `amount` - 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 class `PreciseDurationDateTimeField`
  Parameters:
    `instant` - the milliseconds from 1970-01-01T00:00:00Z to set in
    `value` - value of units to set.
  Returns:
    the updated time instant.
  Throws:
    `java.lang.IllegalArgumentException` - if value is too large or too small.

### getRangeDurationField

    public DurationField 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 class `BaseDateTimeField`
  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 class `BaseDateTimeField`
  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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD