## org.jfree.data.time
Class Quarter

    java.lang.Object
      org.jfree.data.time.RegularTimePeriod
          org.jfree.data.time.Quarter

All Implemented Interfaces:
  java.lang.Comparable, org.jfree.date.MonthConstants, java.io.Serializable, TimePeriod

public class Quarter
extends RegularTimePeriod
implements java.io.Serializable

Defines a quarter (in a given year). The range supported is Q1 1900 to Q4 9999.

This class is immutable, which is a requirement for all `RegularTimePeriod` subclasses.

See Also:
  Serialized Form

Field Summary
`static int[]` `FIRST_MONTH_IN_QUARTER` The first month in each quarter.
`static int` `FIRST_QUARTER` Constant for quarter 1.
`static int[]` `LAST_MONTH_IN_QUARTER` The last month in each quarter.
`static int` `LAST_QUARTER` Constant for quarter 4.

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
`Quarter()` Constructs a new Quarter, based on the current system date/time.
`Quarter(java.util.Date time)` Constructs a new Quarter, based on a date/time and the default time zone.
`Quarter(java.util.Date time, java.util.TimeZone zone)` Constructs a Quarter, based on a date/time and time zone.
`Quarter(int quarter, int year)` Constructs a new quarter.
`Quarter(int quarter, Year year)` Constructs a new quarter.

Method Summary
`int` `compareTo(java.lang.Object o1)` Returns an integer indicating the order of this Quarter object relative to the specified object: negative == before, zero == same, positive == after.
`boolean` `equals(java.lang.Object obj)` Tests the equality of this Quarter object to an arbitrary object.
`long` `getFirstMillisecond(java.util.Calendar calendar)` Returns the first millisecond in the Quarter, evaluated using the supplied calendar (which determines the time zone).
`long` `getLastMillisecond(java.util.Calendar calendar)` Returns the last millisecond of the Quarter, evaluated using the supplied calendar (which determines the time zone).
`int` `getQuarter()` Returns the quarter.
`long` `getSerialIndex()` Returns a serial index number for the quarter.
`Year` `getYear()` Returns the year.
`int` `hashCode()` Returns a hash code for this object instance.
`RegularTimePeriod` `next()` Returns the quarter following this one.
`static Quarter` `parseQuarter(java.lang.String s)` Parses the string argument as a quarter.
`RegularTimePeriod` `previous()` Returns the quarter preceding this one.
`java.lang.String` `toString()` Returns a string representing the quarter (e.g.

Methods inherited from class org.jfree.data.time.RegularTimePeriod
`getEnd, getFirstMillisecond, getFirstMillisecond, getLastMillisecond, getLastMillisecond, getMiddleMillisecond, getMiddleMillisecond, getMiddleMillisecond, getStart`

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

Field Detail

### FIRST_QUARTER

    public static final int FIRST_QUARTER

  Constant for quarter 1.

  See Also:
    Constant Field Values

### LAST_QUARTER

    public static final int LAST_QUARTER

  Constant for quarter 4.

  See Also:
    Constant Field Values

### FIRST_MONTH_IN_QUARTER

    public static final int[] FIRST_MONTH_IN_QUARTER

  The first month in each quarter.

### LAST_MONTH_IN_QUARTER

    public static final int[] LAST_MONTH_IN_QUARTER

  The last month in each quarter.

Constructor Detail

### Quarter

    public Quarter()

  Constructs a new Quarter, based on the current system date/time.

### Quarter

    public Quarter(int quarter,
                   int year)

  Constructs a new quarter.

Parameters:
  `year` - the year (1900 to 9999).
  `quarter` - the quarter (1 to 4).

### Quarter

    public Quarter(int quarter,
                   Year year)

  Constructs a new quarter.

Parameters:
  `quarter` - the quarter (1 to 4).
  `year` - the year (1900 to 9999).

### Quarter

    public Quarter(java.util.Date time)

  Constructs a new Quarter, based on a date/time and the default time zone.

Parameters:
  `time` - the date/time.

### Quarter

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

  Constructs a Quarter, based on a date/time and time zone.

Parameters:
  `time` - the date/time.
  `zone` - the zone.

Method Detail

### getQuarter

    public int getQuarter()

  Returns the quarter.

  Returns:
    The quarter.

### getYear

    public Year getYear()

  Returns the year.

  Returns:
    The year.

### previous

    public RegularTimePeriod previous()

  Returns the quarter preceding this one.

  Specified by:
    `previous` in class `RegularTimePeriod`
  Returns:
    The quarter preceding this one (or null if this is Q1 1900).

### next

    public RegularTimePeriod next()

  Returns the quarter following this one.

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

### getSerialIndex

    public long getSerialIndex()

  Returns a serial index number for the quarter.

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

### equals

    public boolean equals(java.lang.Object obj)

  Tests the equality of this Quarter object to an arbitrary object. Returns true if the target is a Quarter instance representing the same quarter as this object. In all other cases, returns false.

  Parameters:
    `obj` - the object.
  Returns:
    `true` if quarter and 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`

  Returns:
    A hash code.

### compareTo

    public int compareTo(java.lang.Object o1)

  Returns an integer indicating the order of this Quarter 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 quarter (e.g. "Q1/2002").

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

### getFirstMillisecond

    public long getFirstMillisecond(java.util.Calendar calendar)

  Returns the first millisecond in the Quarter, evaluated using the supplied calendar (which determines the time zone).

  Specified by:
    `getFirstMillisecond` in class `RegularTimePeriod`
  Parameters:
    `calendar` - the calendar.
  Returns:
    the first millisecond in the Quarter.

### getLastMillisecond

    public long getLastMillisecond(java.util.Calendar calendar)

  Returns the last millisecond of the Quarter, evaluated using the supplied calendar (which determines the time zone).

  Specified by:
    `getLastMillisecond` in class `RegularTimePeriod`
  Parameters:
    `calendar` - the calendar.
  Returns:
    the last millisecond of the Quarter.

### parseQuarter

    public static Quarter parseQuarter(java.lang.String s)

  Parses the string argument as a quarter.

  This method should accept the following formats: "YYYY-QN" and "QN-YYYY", where the "-" can be a space, a forward-slash (/), comma or a dash (-).

  Parameters:
    `s` - A string representing the quarter.
  Returns:
    the quarter.