org.jfree.data.time

## Class Year

- java.lang.Object
- - org.jfree.data.time.RegularTimePeriod
  - - org.jfree.data.time.Year

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable, TimePeriod, MonthConstants

      public class Year
      extends RegularTimePeriod
      implements java.io.Serializable

  Represents a year in the range -9999 to 9999. This class is immutable, which is a requirement for all `RegularTimePeriod` subclasses.
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `MAXIMUM_YEAR` The maximum year value.
    `static int` | `MINIMUM_YEAR` The minimum year value.

    - ### Fields inherited from class org.jfree.data.time.RegularTimePeriod

      `DEFAULT_TIME_ZONE, WORKING_CALENDAR`

    - ### Fields inherited from interface org.jfree.date.MonthConstants

      `APRIL, AUGUST, DECEMBER, FEBRUARY, JANUARY, JULY, JUNE, MARCH, MAY, NOVEMBER, OCTOBER, SEPTEMBER`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Year()` Creates a new `Year`, based on the current system date/time.
    `Year(java.util.Date time)` Creates a new `Year`, based on a particular instant in time, using the default time zone.
    `Year(java.util.Date time, java.util.TimeZone zone)` Deprecated. Since 1.0.12, use `Year(Date, TimeZone, Locale)` instead.
    `Year(java.util.Date time, java.util.TimeZone zone, java.util.Locale locale)` Creates a new `Year` instance, for the specified time zone and locale.
    `Year(int year)` Creates a time period representing a single year.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `compareTo(java.lang.Object o1)` Returns an integer indicating the order of this `Year` object relative to the specified object: negative == before, zero == same, positive == after.
    `boolean` | `equals(java.lang.Object obj)` Tests the equality of this `Year` object to an arbitrary object.
    `long` | `getFirstMillisecond()` Returns the first millisecond of the year.
    `long` | `getFirstMillisecond(java.util.Calendar calendar)` Returns the first millisecond of the year, evaluated using the supplied calendar (which determines the time zone).
    `long` | `getLastMillisecond()` Returns the last millisecond of the year.
    `long` | `getLastMillisecond(java.util.Calendar calendar)` Returns the last millisecond of the year, evaluated using the supplied calendar (which determines the time zone).
    `long` | `getSerialIndex()` Returns a serial index number for the year.
    `int` | `getYear()` Returns the year.
    `int` | `hashCode()` Returns a hash code for this object instance.
    `RegularTimePeriod` | `next()` Returns the year following this one.
    `static Year` | `parseYear(java.lang.String s)` Parses the string argument as a year.
    `void` | `peg(java.util.Calendar calendar)` Recalculates the start date/time and end date/time for this time period relative to the supplied calendar (which incorporates a time zone).
    `RegularTimePeriod` | `previous()` Returns the year preceding this one.
    `java.lang.String` | `toString()` Returns a string representing the year..

    - ### Methods inherited from class org.jfree.data.time.RegularTimePeriod

      `createInstance, downsize, getEnd, getFirstMillisecond, getLastMillisecond, getMiddleMillisecond, getMiddleMillisecond, getMiddleMillisecond, getMillisecond, getStart`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### MINIMUM_YEAR

          public static final int MINIMUM_YEAR

      The minimum year value.
      Since:
        1.0.11
      See Also:
        Constant Field Values

    - #### MAXIMUM_YEAR

          public static final int MAXIMUM_YEAR

      The maximum year value.
      Since:
        1.0.11
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### Year

          public Year()

      Creates a new `Year`, based on the current system date/time.

    - #### Year

          public Year(int year)

      Creates a time period representing a single year.
      Parameters:
        `year` - the year.

    - #### Year

          public Year(java.util.Date time)

      Creates a new `Year`, based on a particular instant in time, using the default time zone.
      Parameters:
        `time` - the time (`null` not permitted).
      See Also:
        `Year(Date, TimeZone)`

    - #### Year

          public Year(java.util.Date time,
                      java.util.TimeZone zone)

      Deprecated. Since 1.0.12, use `Year(Date, TimeZone, Locale)` instead.
      Constructs a year, based on a particular instant in time and a time zone.
      Parameters:
        `time` - the time (`null` not permitted).
        `zone` - the time zone.

    - #### Year

          public Year(java.util.Date time,
                      java.util.TimeZone zone,
                      java.util.Locale locale)

      Creates a new `Year` instance, for the specified time zone and locale.
      Parameters:
        `time` - the current time (`null` not permitted).
        `zone` - the time zone.
        `locale` - the locale.
      Since:
        1.0.12

  - ### Method Detail

    - #### getYear

          public int getYear()

      Returns the year.
      Returns:
        The year.

    - #### getFirstMillisecond

          public long getFirstMillisecond()

      Returns the first millisecond of the year. This will be determined relative to the time zone specified in the constructor, or in the calendar instance passed in the most recent call to the `peg(Calendar)` method.
      Specified by:
        `getFirstMillisecond` in class `RegularTimePeriod`
      Returns:
        The first millisecond of the year.
      See Also:
        `getLastMillisecond()`

    - #### getLastMillisecond

          public long getLastMillisecond()

      Returns the last millisecond of the year. This will be determined relative to the time zone specified in the constructor, or in the calendar instance passed in the most recent call to the `peg(Calendar)` method.
      Specified by:
        `getLastMillisecond` in class `RegularTimePeriod`
      Returns:
        The last millisecond of the year.
      See Also:
        `getFirstMillisecond()`

    - #### peg

          public void peg(java.util.Calendar calendar)

      Recalculates the start date/time and end date/time for this time period relative to the supplied calendar (which incorporates a time zone).
      Specified by:
        `peg` in class `RegularTimePeriod`
      Parameters:
        `calendar` - the calendar (`null` not permitted).
      Since:
        1.0.3

    - #### previous

          public RegularTimePeriod previous()

      Returns the year preceding this one.
      Specified by:
        `previous` in class `RegularTimePeriod`
      Returns:
        The year preceding this one (or `null` if the current year is -9999).

    - #### next

          public RegularTimePeriod next()

      Returns the year following this one.
      Specified by:
        `next` in class `RegularTimePeriod`
      Returns:
        The year following this one (or `null` if the current year is 9999).

    - #### getSerialIndex

          public long getSerialIndex()

      Returns a serial index number for the year.

      The implementation simply returns the year number (e.g. 2002).

      Specified by:
        `getSerialIndex` in class `RegularTimePeriod`
      Returns:
        The serial index number.

    - #### getFirstMillisecond

          public long getFirstMillisecond(java.util.Calendar calendar)

      Returns the first millisecond of the year, evaluated using the supplied calendar (which determines the time zone).
      Specified by:
        `getFirstMillisecond` in class `RegularTimePeriod`
      Parameters:
        `calendar` - the calendar (`null` not permitted).
      Returns:
        The first millisecond of the year.
      Throws:
        `java.lang.NullPointerException` - if `calendar` is `null`.
      See Also:
        `RegularTimePeriod.getLastMillisecond(Calendar)`

    - #### getLastMillisecond

          public long getLastMillisecond(java.util.Calendar calendar)

      Returns the last millisecond of the year, evaluated using the supplied calendar (which determines the time zone).
      Specified by:
        `getLastMillisecond` in class `RegularTimePeriod`
      Parameters:
        `calendar` - the calendar (`null` not permitted).
      Returns:
        The last millisecond of the year.
      Throws:
        `java.lang.NullPointerException` - if `calendar` is `null`.
      See Also:
        `RegularTimePeriod.getFirstMillisecond(Calendar)`

    - #### equals

          public boolean equals(java.lang.Object obj)

      Tests the equality of this `Year` object to an arbitrary object. Returns `true` if the target is a `Year` instance representing the same year as this object. In all other cases, returns `false`.
      Overrides:
        `equals` in class `java.lang.Object`
      Parameters:
        `obj` - the object (`null` permitted).
      Returns:
        `true` if the year of this and the object are the same.

    - #### hashCode

          public int hashCode()

      Returns a hash code for this object instance. The approach described by Joshua Bloch in "Effective Java" has been used here:

      `http://developer.java.sun.com/developer/Books/effectivejava /Chapter3.pdf`

      Overrides:
        `hashCode` in class `java.lang.Object`
      Returns:
        A hash code.

    - #### compareTo

          public int compareTo(java.lang.Object o1)

      Returns an integer indicating the order of this `Year` object relative to the specified object: negative == before, zero == same, positive == after.
      Specified by:
        `compareTo` in interface `java.lang.Comparable`
      Parameters:
        `o1` - the object to compare.
      Returns:
        negative == before, zero == same, positive == after.

    - #### toString

          public java.lang.String toString()

      Returns a string representing the year..
      Overrides:
        `toString` in class `RegularTimePeriod`
      Returns:
        A string representing the year.

    - #### parseYear

          public static Year parseYear(java.lang.String s)

      Parses the string argument as a year.

      The string format is YYYY.

      Parameters:
        `s` - a string representing the year.
      Returns:
        `null` if the string is not parseable, the year otherwise.