Class Quarter

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

    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
    • Constructor Summary

      Constructors 
      Constructor Description
      Quarter()
      Constructs a new Quarter, based on the current system date/time.
      Quarter​(int quarter, int year)
      Constructs a new quarter.
      Quarter​(int quarter, Year year)
      Constructs a new quarter.
      Quarter​(java.util.Date time)
      Constructs a new instance, based on a date/time and the default time zone.
      Quarter​(java.util.Date time, java.util.TimeZone zone)
      Deprecated.
      Since 1.0.12, use Quarter(Date, TimeZone, Locale) instead.
      Quarter​(java.util.Date time, java.util.TimeZone zone, java.util.Locale locale)
      Creates a new Quarter instance, using the specified zone and locale.
    • 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 instance, based on a date/time and the default time zone.
        Parameters:
        time - the date/time (null not permitted).
        See Also:
        Quarter(Date, TimeZone)
      • Quarter

        public Quarter​(java.util.Date time,
                       java.util.TimeZone zone)
        Deprecated.
        Since 1.0.12, use Quarter(Date, TimeZone, Locale) instead.
        Constructs a Quarter, based on a date/time and time zone.
        Parameters:
        time - the date/time.
        zone - the zone (null not permitted).
      • Quarter

        public Quarter​(java.util.Date time,
                       java.util.TimeZone zone,
                       java.util.Locale locale)
        Creates a new Quarter instance, using the specified zone and locale.
        Parameters:
        time - the current time.
        zone - the time zone.
        locale - the locale.
        Since:
        1.0.12
    • Method Detail

      • getQuarter

        public int getQuarter()
        Returns the quarter.
        Returns:
        The quarter.
      • getYear

        public Year getYear()
        Returns the year.
        Returns:
        The year.
      • getYearValue

        public int getYearValue()
        Returns the year.
        Returns:
        The year.
        Since:
        1.0.3
      • 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
      • 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.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        obj - the object (null permitted).
        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 java.lang.Object
        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.
      • 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.