Class Quarter

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

public class Quarter
extends RegularTimePeriod
implements 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 Details

    • 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 Details

    • 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​(Date time)
      Constructs a new Quarter, based on a date/time and the default time zone.
      Parameters:
      time - the date/time.
    • Quarter

      public Quarter​(Date time, TimeZone zone)
      Constructs a Quarter, based on a date/time and time zone.
      Parameters:
      time - the date/time.
      zone - the zone.
  • Method Details

    • 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​(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.
      Overrides:
      equals in class Object
      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

      Overrides:
      hashCode in class Object
      Returns:
      A hash code.
    • compareTo

      public int compareTo​(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 Comparable
      Parameters:
      o1 - the object to compare
      Returns:
      negative == before, zero == same, positive == after.
    • toString

      public 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​(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​(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​(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.