Class RelativeDayOfWeekRule

java.lang.Object
org.jfree.date.AnnualDateRule
org.jfree.date.RelativeDayOfWeekRule
All Implemented Interfaces:
Cloneable

public class RelativeDayOfWeekRule extends AnnualDateRule
An annual date rule that returns a date for each year based on (a) a reference rule; (b) a day of the week; and (c) a selection parameter (SerialDate.PRECEDING, SerialDate.NEAREST, SerialDate.FOLLOWING).

For example, Good Friday can be specified as 'the Friday PRECEDING Easter Sunday'.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private int
    The day of the week (SerialDate.MONDAY, SerialDate.TUESDAY, and so on).
    private int
    Specifies which day of the week (PRECEDING, NEAREST or FOLLOWING).
    A reference to the annual date rule on which this rule is based.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Default constructor - builds a rule for the Monday following 1 January.
    RelativeDayOfWeekRule(AnnualDateRule subrule, int dayOfWeek, int relative)
    Standard constructor - builds rule based on the supplied sub-rule.
  • Method Summary

    Modifier and Type
    Method
    Description
    Creates a clone of this rule.
    getDate(int year)
    Returns the date generated by this rule, for the specified year.
    int
    Returns the day-of-the-week for this rule.
    int
    Returns the 'relative' attribute, that determines *which* day-of-the-week we are interested in (SerialDate.PRECEDING, SerialDate.NEAREST or SerialDate.FOLLOWING).
    Returns the sub-rule (also called the reference rule).
    void
    setDayOfWeek(int dayOfWeek)
    Sets the day-of-the-week for this rule.
    void
    setRelative(int relative)
    Sets the 'relative' attribute (SerialDate.PRECEDING, SerialDate.NEAREST, SerialDate.FOLLOWING).
    void
    Sets the sub-rule.

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • subrule

      private AnnualDateRule subrule
      A reference to the annual date rule on which this rule is based.
    • dayOfWeek

      private int dayOfWeek
      The day of the week (SerialDate.MONDAY, SerialDate.TUESDAY, and so on).
    • relative

      private int relative
      Specifies which day of the week (PRECEDING, NEAREST or FOLLOWING).
  • Constructor Details

    • RelativeDayOfWeekRule

      public RelativeDayOfWeekRule()
      Default constructor - builds a rule for the Monday following 1 January.
    • RelativeDayOfWeekRule

      public RelativeDayOfWeekRule(AnnualDateRule subrule, int dayOfWeek, int relative)
      Standard constructor - builds rule based on the supplied sub-rule.
      Parameters:
      subrule - the rule that determines the reference date.
      dayOfWeek - the day-of-the-week relative to the reference date.
      relative - indicates *which* day-of-the-week (preceding, nearest or following).
  • Method Details

    • getSubrule

      public AnnualDateRule getSubrule()
      Returns the sub-rule (also called the reference rule).
      Returns:
      The annual date rule that determines the reference date for this rule.
    • setSubrule

      public void setSubrule(AnnualDateRule subrule)
      Sets the sub-rule.
      Parameters:
      subrule - the annual date rule that determines the reference date for this rule.
    • getDayOfWeek

      public int getDayOfWeek()
      Returns the day-of-the-week for this rule.
      Returns:
      the day-of-the-week for this rule.
    • setDayOfWeek

      public void setDayOfWeek(int dayOfWeek)
      Sets the day-of-the-week for this rule.
      Parameters:
      dayOfWeek - the day-of-the-week (SerialDate.MONDAY, SerialDate.TUESDAY, and so on).
    • getRelative

      public int getRelative()
      Returns the 'relative' attribute, that determines *which* day-of-the-week we are interested in (SerialDate.PRECEDING, SerialDate.NEAREST or SerialDate.FOLLOWING).
      Returns:
      The 'relative' attribute.
    • setRelative

      public void setRelative(int relative)
      Sets the 'relative' attribute (SerialDate.PRECEDING, SerialDate.NEAREST, SerialDate.FOLLOWING).
      Parameters:
      relative - determines *which* day-of-the-week is selected by this rule.
    • clone

      public Object clone() throws CloneNotSupportedException
      Creates a clone of this rule.
      Overrides:
      clone in class AnnualDateRule
      Returns:
      a clone of this rule.
      Throws:
      CloneNotSupportedException - this should never happen.
    • getDate

      public SerialDate getDate(int year)
      Returns the date generated by this rule, for the specified year.
      Specified by:
      getDate in class AnnualDateRule
      Parameters:
      year - the year (1900 <= year <= 9999).
      Returns:
      The date generated by the rule for the given year (possibly null).