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
Class Months

    java.lang.Object
      org.joda.time.base.BaseSingleFieldPeriod
          org.joda.time.Months

All Implemented Interfaces:
  java.io.Serializable, java.lang.Comparable, ReadablePeriod

    public final class Months

extends BaseSingleFieldPeriod

An immutable time period representing a number of months.

`Months` is an immutable period that can only store months. It does not store years, days or hours for example. As such it is a type-safe way of representing a number of months in an application.

The number of months is set in the constructor, and may be queried using `getMonths()`. Basic mathematical operations are provided - `plus()`, `minus()`, `multipliedBy()` and `dividedBy()`.

`Months` is thread-safe and immutable.

Since:
  1.4
Author:
  Stephen Colebourne
See Also:
  Serialized Form

Field Summary
`static Months` | `EIGHT` Constant representing eight months.
`static Months` | `ELEVEN` Constant representing eleven months.
`static Months` | `FIVE` Constant representing five months.
`static Months` | `FOUR` Constant representing four months.
`static Months` | `MAX_VALUE` Constant representing the maximum nuber of months that can be stored in this object.
`static Months` | `MIN_VALUE` Constant representing the minimum nuber of months that can be stored in this object.
`static Months` | `NINE` Constant representing nine months.
`static Months` | `ONE` Constant representing one day.
`static Months` | `SEVEN` Constant representing seven months.
`static Months` | `SIX` Constant representing six months.
`static Months` | `TEN` Constant representing ten months.
`static Months` | `THREE` Constant representing three months.
`static Months` | `TWELVE` Constant representing twelve months.
`static Months` | `TWO` Constant representing two months.
`static Months` | `ZERO` Constant representing zero months.

Method Summary
`Months` | `dividedBy(int divisor)` Returns a new instance with the months divided by the specified divisor.
`DurationFieldType` | `getFieldType()` Gets the duration field type, which is `months`.
`int` | `getMonths()` Gets the number of months that this period represents.
`PeriodType` | `getPeriodType()` Gets the period type, which is `months`.
`boolean` | `isGreaterThan(Months other)` Is this months instance greater than the specified number of months.
`boolean` | `isLessThan(Months other)` Is this months instance less than the specified number of months.
`Months` | `minus(int months)` Returns a new instance with the specified number of months taken away.
`Months` | `minus(Months months)` Returns a new instance with the specified number of months taken away.
`static Months` | `months(int months)` Obtains an instance of `Months` that may be cached.
`static Months` | `monthsBetween(ReadableInstant start, ReadableInstant end)` Creates a `Months` representing the number of whole months between the two specified datetimes.
`static Months` | `monthsBetween(ReadablePartial start, ReadablePartial end)` Creates a `Months` representing the number of whole months between the two specified partial datetimes.
`static Months` | `monthsIn(ReadableInterval interval)` Creates a `Months` representing the number of whole months in the specified interval.
`Months` | `multipliedBy(int scalar)` Returns a new instance with the months multiplied by the specified scalar.
`Months` | `negated()` Returns a new instance with the months value negated.
`static Months` | `parseMonths(java.lang.String periodStr)` Creates a new `Months` by parsing a string in the ISO8601 format 'PnM'.
`Months` | `plus(int months)` Returns a new instance with the specified number of months added.
`Months` | `plus(Months months)` Returns a new instance with the specified number of months added.
`java.lang.String` | `toString()` Gets this instance as a String in the ISO8601 duration format.

Methods inherited from class org.joda.time.base.BaseSingleFieldPeriod
`between, between, compareTo, equals, get, getFieldType, getValue, getValue, hashCode, isSupported, setValue, size, standardPeriodIn, toMutablePeriod, toPeriod`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Field Detail

### ZERO

    public static final Months ZERO

  Constant representing zero months.

### ONE

    public static final Months ONE

  Constant representing one day.

### TWO

    public static final Months TWO

  Constant representing two months.

### THREE

    public static final Months THREE

  Constant representing three months.

### FOUR

    public static final Months FOUR

  Constant representing four months.

### FIVE

    public static final Months FIVE

  Constant representing five months.

### SIX

    public static final Months SIX

  Constant representing six months.

### SEVEN

    public static final Months SEVEN

  Constant representing seven months.

### EIGHT

    public static final Months EIGHT

  Constant representing eight months.

### NINE

    public static final Months NINE

  Constant representing nine months.

### TEN

    public static final Months TEN

  Constant representing ten months.

### ELEVEN

    public static final Months ELEVEN

  Constant representing eleven months.

### TWELVE

    public static final Months TWELVE

  Constant representing twelve months.

### MAX_VALUE

    public static final Months MAX_VALUE

  Constant representing the maximum nuber of months that can be stored in this object.

### MIN_VALUE

    public static final Months MIN_VALUE

  Constant representing the minimum nuber of months that can be stored in this object.

Method Detail

### months

    public static Months months(int months)

  Obtains an instance of `Months` that may be cached. `Months` is immutable, so instances can be cached and shared. This factory method provides access to shared instances.

  Parameters:
    `months` - the number of months to obtain an instance for
  Returns:
    the instance of Months

### monthsBetween

    public static Months monthsBetween(ReadableInstant start,
                                       ReadableInstant end)

  Creates a `Months` representing the number of whole months between the two specified datetimes. This method corectly handles any daylight savings time changes that may occur during the interval.

  Parameters:
    `start` - the start instant, must not be null
    `end` - the end instant, must not be null
  Returns:
    the period in months
  Throws:
    `java.lang.IllegalArgumentException` - if the instants are null or invalid

### monthsBetween

    public static Months monthsBetween(ReadablePartial start,
                                       ReadablePartial end)

  Creates a `Months` representing the number of whole months between the two specified partial datetimes.

  The two partials must contain the same fields, for example you can specify two `LocalDate` objects.

  Parameters:
    `start` - the start partial date, must not be null
    `end` - the end partial date, must not be null
  Returns:
    the period in months
  Throws:
    `java.lang.IllegalArgumentException` - if the partials are null or invalid

### monthsIn

    public static Months monthsIn(ReadableInterval interval)

  Creates a `Months` representing the number of whole months in the specified interval. This method corectly handles any daylight savings time changes that may occur during the interval.

  Parameters:
    `interval` - the interval to extract months from, null returns zero
  Returns:
    the period in months
  Throws:
    `java.lang.IllegalArgumentException` - if the partials are null or invalid

### parseMonths

    public static Months parseMonths(java.lang.String periodStr)

  Creates a new `Months` by parsing a string in the ISO8601 format 'PnM'.

  The parse will accept the full ISO syntax of PnYnMnWnDTnHnMnS however only the months component may be non-zero. If any other component is non-zero, an exception will be thrown.

  Parameters:
    `periodStr` - the period string, null returns zero
  Returns:
    the period in months
  Throws:
    `java.lang.IllegalArgumentException` - if the string format is invalid

### getFieldType

    public DurationFieldType getFieldType()

  Gets the duration field type, which is `months`.

  Specified by:
    `getFieldType` in class `BaseSingleFieldPeriod`
  Returns:
    the period type

### getPeriodType

    public PeriodType getPeriodType()

  Gets the period type, which is `months`.

  Specified by:
    `getPeriodType` in interface `ReadablePeriod`
  Specified by:
    `getPeriodType` in class `BaseSingleFieldPeriod`
  Returns:
    the period type

### getMonths

    public int getMonths()

  Gets the number of months that this period represents.

  Returns:
    the number of months in the period

### plus

    public Months plus(int months)

  Returns a new instance with the specified number of months added.

  This instance is immutable and unaffected by this method call.

  Parameters:
    `months` - the amount of months to add, may be negative
  Returns:
    the new period plus the specified number of months
  Throws:
    `java.lang.ArithmeticException` - if the result overflows an int

### plus

    public Months plus(Months months)

  Returns a new instance with the specified number of months added.

  This instance is immutable and unaffected by this method call.

  Parameters:
    `months` - the amount of months to add, may be negative, null means zero
  Returns:
    the new period plus the specified number of months
  Throws:
    `java.lang.ArithmeticException` - if the result overflows an int

### minus

    public Months minus(int months)

  Returns a new instance with the specified number of months taken away.

  This instance is immutable and unaffected by this method call.

  Parameters:
    `months` - the amount of months to take away, may be negative
  Returns:
    the new period minus the specified number of months
  Throws:
    `java.lang.ArithmeticException` - if the result overflows an int

### minus

    public Months minus(Months months)

  Returns a new instance with the specified number of months taken away.

  This instance is immutable and unaffected by this method call.

  Parameters:
    `months` - the amount of months to take away, may be negative, null means zero
  Returns:
    the new period minus the specified number of months
  Throws:
    `java.lang.ArithmeticException` - if the result overflows an int

### multipliedBy

    public Months multipliedBy(int scalar)

  Returns a new instance with the months multiplied by the specified scalar.

  This instance is immutable and unaffected by this method call.

  Parameters:
    `scalar` - the amount to multiply by, may be negative
  Returns:
    the new period multiplied by the specified scalar
  Throws:
    `java.lang.ArithmeticException` - if the result overflows an int

### dividedBy

    public Months dividedBy(int divisor)

  Returns a new instance with the months divided by the specified divisor. The calculation uses integer division, thus 3 divided by 2 is 1.

  This instance is immutable and unaffected by this method call.

  Parameters:
    `divisor` - the amount to divide by, may be negative
  Returns:
    the new period divided by the specified divisor
  Throws:
    `java.lang.ArithmeticException` - if the divisor is zero

### negated

    public Months negated()

  Returns a new instance with the months value negated.

  Returns:
    the new period with a negated value
  Throws:
    `java.lang.ArithmeticException` - if the result overflows an int

### isGreaterThan

    public boolean isGreaterThan(Months other)

  Is this months instance greater than the specified number of months.

  Parameters:
    `other` - the other period, null means zero
  Returns:
    true if this months instance is greater than the specified one

### isLessThan

    public boolean isLessThan(Months other)

  Is this months instance less than the specified number of months.

  Parameters:
    `other` - the other period, null means zero
  Returns:
    true if this months instance is less than the specified one

### toString

    public java.lang.String toString()

  Gets this instance as a String in the ISO8601 duration format.

  For example, "P4M" represents 4 months.

  Specified by:
    `toString` in interface `ReadablePeriod`
  Overrides:
    `toString` in class `java.lang.Object`
  Returns:
    the value as an ISO8601 string

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