Чистый код. Создание, анализ и рефакторинг (Мартин) - страница 299

>  13  *

>  14  * Библиотека распространяется в надежде, что она будет полезна, но

>  15  * БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, даже без подразумеваемой гарантии ПРИГОДНОСТИ

>  16  * для КОНКРЕТНОЙ ЦЕЛИ. За подробностями обращайтесь к GNU Lesser General

>  17  * Public License.

>  18  *

>  19  * Вы должны получить копию лицензии GNU Lesser General Public License

>  20  * с этой библиотекой; если этого не произошло, обратитесь в Free Software

>  21  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,

>  22  * USA.

>  23  *

>  24  * [Java является зарегистрированной торговой маркой Sun Microsystems, Inc.

>  25  * в Соединенных Штатах и других странах].

>  26  *

>  27  * --------------------------

>  28  * RelativeDayOfWeekRule.java

>  29  * --------------------------

>  30  * (C) Copyright 2000–2003, by Object Refinery Limited and Contributors.

>  31  *

>  32  * Автор:  Дэвид Гилберт (для Object Refinery Limited);

>  33  * Участники:   -;

>  34  *

>  35  * $Id: RelativeDayOfWeekRule.java,v 1.6 2005/11/16 15:58:40 taqua Exp $

>  36  *

>  37  * Изменения (начиная с 26 октября 2001)

>  38  * --------------------------

>  39  * 26-Oct-2001 : Пакет изменен на com.jrefinery.date.*;

>  40  * 03-Oct-2002 : Исправлены ошибки по информации Checkstyle (DG);

>  41  *

>  42  */

>  43

>  44 package org.jfree.date;

>  45

>  46 /**

>  47  * Правило ежегодной даты, возвращающее дату для каждого года на основании 

>  48  *  (a) эталонного правила; (б) дня недели; и (в) параметра выбора.

>  49  * (SerialDate.PRECEDING, SerialDate.NEAREST, SerialDate.FOLLOWING).

>  50  *

>  51  * Например, Страстная пятница может задаваться как 'пятница, ПРЕДШЕСТВУЮЩАЯ

>  52  * Пасхе'.

>  53  *

>  54  * @author Дэвид Гилберт

>  55  */

>  56 public class RelativeDayOfWeekRule extends AnnualDateRule {

>  57

>  58     /** Ссылка на правило ежегодной даты, на котором основано данное правило. */

>  59     private AnnualDateRule subrule;

>  60

>  61     /**

>  62      * День недели (SerialDate.MONDAY, SerialDate.TUESDAY и т.д.).

>  63      */

>  64     private int dayOfWeek;

>  65

>  66     /** Признак выбора дня недели (PRECEDING, NEAREST или FOLLOWING). */

>  67     private int relative;

>  68

>  69     /**

>  70      * Конструктор по умолчанию - строит правило для понедельника после

>          1 января.

>  71      */

>  72     public RelativeDayOfWeekRule() {

>  73         this(new DayAndMonthRule(), SerialDate.MONDAY, SerialDate.FOLLOWING);

>  74     }

>  75

>  76     /**

>  77      * Стандартный конструктор - строит правило на основании субправила.

>  78      *

>  79      * @param subrule  правило, определяющее эталонную дату.