Class Year

    • Field Detail

      • MINIMUM_YEAR

        public static final int MINIMUM_YEAR
        The minimum year value.
        See Also:
        Constant Field Values
      • MAXIMUM_YEAR

        public static final int MAXIMUM_YEAR
        The maximum year value.
        See Also:
        Constant Field Values
      • serialVersionUID

        private static final long serialVersionUID
        For serialization.
        See Also:
        Constant Field Values
      • year

        private short year
        The year.
      • firstMillisecond

        private long firstMillisecond
        The first millisecond.
      • lastMillisecond

        private long lastMillisecond
        The last millisecond.
    • Constructor Detail

      • Year

        public Year​(int year)
        Creates a time period representing a single year. The time zone and locale are determined by the calendar returned by RegularTimePeriod.getCalendarInstance().
        Parameters:
        year - the year.
      • 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.
      • Year

        public Year​(java.util.Date time,
                    java.util.Calendar calendar)
        Constructs a new instance, based on a particular date/time. The time zone and locale are determined by the calendar parameter.
        Parameters:
        time - the date/time (null not permitted).
        calendar - the calendar to use for calculations (null not permitted).
    • 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).
      • previous

        public RegularTimePeriod previous()
        Returns the year preceding this one. No matter what time zone and locale this instance was created with, the returned instance will use the default calendar for time calculations, obtained with RegularTimePeriod.getCalendarInstance().
        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. No matter what time zone and locale this instance was created with, the returned instance will use the default calendar for time calculations, obtained with RegularTimePeriod.getCalendarInstance().
        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.