public class

MutableInterval

extends BaseInterval
implements Serializable Cloneable ReadWritableInterval
java.lang.Object
   ↳ org.joda.time.base.AbstractInterval
     ↳ org.joda.time.base.BaseInterval
       ↳ org.joda.time.MutableInterval

Class Overview

MutableInterval is the standard implementation of a mutable time interval.

A time interval represents a period of time between two instants. Intervals are inclusive of the start instant and exclusive of the end. The end instant is always greater than or equal to the start instant.

Intervals have a fixed millisecond duration. This is the difference between the start and end instants. The duration is represented separately by ReadableDuration. As a result, intervals are not comparable. To compare the length of two intervals, you should compare their durations.

An interval can also be converted to a ReadablePeriod. This represents the difference between the start and end points in terms of fields such as years and days.

If performing significant calculations on an interval, it may be faster to convert an Interval object to a MutableInterval one.

MutableInterval is mutable and not thread-safe, unless concurrent threads are not invoking mutator methods.

Summary

Public Constructors
MutableInterval()
Constructs a zero length time interval from 1970-01-01 to 1970-01-01.
MutableInterval(long startInstant, long endInstant)
Constructs an interval from a start and end instant with the ISO default chronology.
MutableInterval(long startInstant, long endInstant, Chronology chronology)
Constructs an interval from a start and end instant with a chronology.
MutableInterval(ReadableInstant start, ReadableInstant end)
Constructs an interval from a start and end instant.
MutableInterval(ReadableInstant start, ReadableDuration duration)
Constructs an interval from a start instant and a duration.
MutableInterval(ReadableDuration duration, ReadableInstant end)
Constructs an interval from a millisecond duration and an end instant.
MutableInterval(ReadableInstant start, ReadablePeriod period)
Constructs an interval from a start instant and a time period.
MutableInterval(ReadablePeriod period, ReadableInstant end)
Constructs an interval from a time period and an end instant.
MutableInterval(Object interval)
Constructs a time interval by converting or copying from another object.
MutableInterval(Object interval, Chronology chronology)
Constructs a time interval by converting or copying from another object, overriding the chronology.
Public Methods
Object clone()
Clone this object.
MutableInterval copy()
Clone this object without having to cast the returned object.
void setChronology(Chronology chrono)
Sets the chronology of this time interval.
void setDurationAfterStart(ReadableDuration duration)
Sets the duration of this time interval, preserving the start instant.
void setDurationAfterStart(long duration)
Sets the duration of this time interval, preserving the start instant.
void setDurationBeforeEnd(long duration)
Sets the duration of this time interval, preserving the end instant.
void setDurationBeforeEnd(ReadableDuration duration)
Sets the duration of this time interval, preserving the end instant.
void setEnd(ReadableInstant end)
Sets the end of this time interval as an Instant.
void setEndMillis(long endInstant)
Sets the end of this time interval.
void setInterval(ReadableInstant start, ReadableInstant end)
Sets this interval from two instants, replacing the chronology with that from the start instant.
void setInterval(long startInstant, long endInstant)
Sets this interval from two millisecond instants retaining the chronology.
void setInterval(ReadableInterval interval)
Sets this interval to be the same as another.
void setPeriodAfterStart(ReadablePeriod period)
Sets the period of this time interval, preserving the start instant and using the ISOChronology in the default zone for calculations.
void setPeriodBeforeEnd(ReadablePeriod period)
Sets the period of this time interval, preserving the end instant and using the ISOChronology in the default zone for calculations.
void setStart(ReadableInstant start)
Sets the start of this time interval as an Instant.
void setStartMillis(long startInstant)
Sets the start of this time interval.
[Expand]
Inherited Methods
From class org.joda.time.base.BaseInterval
From class org.joda.time.base.AbstractInterval
From class java.lang.Object
From interface org.joda.time.ReadWritableInterval
From interface org.joda.time.ReadableInterval

Public Constructors

public MutableInterval ()

Constructs a zero length time interval from 1970-01-01 to 1970-01-01.

public MutableInterval (long startInstant, long endInstant)

Constructs an interval from a start and end instant with the ISO default chronology.

Parameters
startInstant start of this interval, as milliseconds from 1970-01-01T00:00:00Z.
endInstant end of this interval, as milliseconds from 1970-01-01T00:00:00Z.
Throws
IllegalArgumentException if the end is before the start

public MutableInterval (long startInstant, long endInstant, Chronology chronology)

Constructs an interval from a start and end instant with a chronology.

Parameters
startInstant start of this interval, as milliseconds from 1970-01-01T00:00:00Z.
endInstant end of this interval, as milliseconds from 1970-01-01T00:00:00Z.
chronology the chronology to use, null is ISO default
Throws
IllegalArgumentException if the end is before the start

public MutableInterval (ReadableInstant start, ReadableInstant end)

Constructs an interval from a start and end instant.

The chronology used is that of the start instant.

Parameters
start start of this interval, null means now
end end of this interval, null means now
Throws
IllegalArgumentException if the end is before the start

public MutableInterval (ReadableInstant start, ReadableDuration duration)

Constructs an interval from a start instant and a duration.

Parameters
start start of this interval, null means now
duration the duration of this interval, null means zero length
Throws
IllegalArgumentException if the end is before the start
ArithmeticException if the end instant exceeds the capacity of a long

public MutableInterval (ReadableDuration duration, ReadableInstant end)

Constructs an interval from a millisecond duration and an end instant.

Parameters
duration the duration of this interval, null means zero length
end end of this interval, null means now
Throws
IllegalArgumentException if the end is before the start
ArithmeticException if the start instant exceeds the capacity of a long

public MutableInterval (ReadableInstant start, ReadablePeriod period)

Constructs an interval from a start instant and a time period.

When forming the interval, the chronology from the instant is used if present, otherwise the chronology of the period is used.

Parameters
start start of this interval, null means now
period the period of this interval, null means zero length
Throws
IllegalArgumentException if the end is before the start
ArithmeticException if the end instant exceeds the capacity of a long

public MutableInterval (ReadablePeriod period, ReadableInstant end)

Constructs an interval from a time period and an end instant.

When forming the interval, the chronology from the instant is used if present, otherwise the chronology of the period is used.

Parameters
period the period of this interval, null means zero length
end end of this interval, null means now
Throws
IllegalArgumentException if the end is before the start
ArithmeticException if the start instant exceeds the capacity of a long

public MutableInterval (Object interval)

Constructs a time interval by converting or copying from another object.

The recognised object types are defined in ConverterManager and include ReadableInterval and String. The String formats are described by dateTimeParser() and standard(), and may be 'datetime/datetime', 'datetime/period' or 'period/datetime'.

Parameters
interval the time interval to copy
Throws
IllegalArgumentException if the interval is invalid

public MutableInterval (Object interval, Chronology chronology)

Constructs a time interval by converting or copying from another object, overriding the chronology.

The recognised object types are defined in ConverterManager and include ReadableInterval and String. The String formats are described by dateTimeParser() and standard(), and may be 'datetime/datetime', 'datetime/period' or 'period/datetime'.

Parameters
interval the time interval to copy
chronology the chronology to use, null means ISO default
Throws
IllegalArgumentException if the interval is invalid

Public Methods

public Object clone ()

Clone this object.

Returns
  • a clone of this object.

public MutableInterval copy ()

Clone this object without having to cast the returned object.

Returns
  • a clone of the this object.

public void setChronology (Chronology chrono)

Sets the chronology of this time interval.

Parameters
chrono the chronology to use, null means ISO default

public void setDurationAfterStart (ReadableDuration duration)

Sets the duration of this time interval, preserving the start instant.

Parameters
duration new duration for interval, null means zero length
Throws
IllegalArgumentException if the end is before the start
ArithmeticException if the end instant exceeds the capacity of a long

public void setDurationAfterStart (long duration)

Sets the duration of this time interval, preserving the start instant.

Parameters
duration new duration for interval
Throws
IllegalArgumentException if the end is before the start
ArithmeticException if the end instant exceeds the capacity of a long

public void setDurationBeforeEnd (long duration)

Sets the duration of this time interval, preserving the end instant.

Parameters
duration new duration for interval
Throws
IllegalArgumentException if the end is before the start
ArithmeticException if the start instant exceeds the capacity of a long

public void setDurationBeforeEnd (ReadableDuration duration)

Sets the duration of this time interval, preserving the end instant.

Parameters
duration new duration for interval, null means zero length
Throws
IllegalArgumentException if the end is before the start
ArithmeticException if the start instant exceeds the capacity of a long

public void setEnd (ReadableInstant end)

Sets the end of this time interval as an Instant.

Parameters
end the end of the time interval, null means now
Throws
IllegalArgumentException if the end is before the start

public void setEndMillis (long endInstant)

Sets the end of this time interval.

Parameters
endInstant the end of the time interval, millisecond instant from 1970-01-01T00:00:00Z
Throws
IllegalArgumentException if the end is before the start

public void setInterval (ReadableInstant start, ReadableInstant end)

Sets this interval from two instants, replacing the chronology with that from the start instant.

Parameters
start the start of the time interval
end the start of the time interval
Throws
IllegalArgumentException if the end is before the start

public void setInterval (long startInstant, long endInstant)

Sets this interval from two millisecond instants retaining the chronology.

Parameters
startInstant the start of the time interval
endInstant the start of the time interval
Throws
IllegalArgumentException if the end is before the start

public void setInterval (ReadableInterval interval)

Sets this interval to be the same as another.

Parameters
interval the interval to copy
Throws
IllegalArgumentException if the interval is null

public void setPeriodAfterStart (ReadablePeriod period)

Sets the period of this time interval, preserving the start instant and using the ISOChronology in the default zone for calculations.

Parameters
period new period for interval, null means zero length
Throws
IllegalArgumentException if the end is before the start
ArithmeticException if the end instant exceeds the capacity of a long

public void setPeriodBeforeEnd (ReadablePeriod period)

Sets the period of this time interval, preserving the end instant and using the ISOChronology in the default zone for calculations.

Parameters
period new period for interval, null means zero length
Throws
IllegalArgumentException if the end is before the start
ArithmeticException if the start instant exceeds the capacity of a long

public void setStart (ReadableInstant start)

Sets the start of this time interval as an Instant.

Parameters
start the start of the time interval, null means now
Throws
IllegalArgumentException if the end is before the start

public void setStartMillis (long startInstant)

Sets the start of this time interval.

Parameters
startInstant the start of the time interval, millisecond instant from 1970-01-01T00:00:00Z
Throws
IllegalArgumentException if the end is before the start