179 throw new IllegalArgumentException(
180 "RelativeDayOfWeekRule.getDate(): year outside valid range.");
181 }
182
183 // Вычислить дату...
184 SerialDate result = null;
185 final SerialDate base = this.subrule.getDate(year);
186
187 if (base != null) {
188 switch (this.relative) {
189 case(SerialDate.PRECEDING):
190 result = SerialDate.getPreviousDayOfWeek(this.dayOfWeek,
191 base);
192 break;
193 case(SerialDate.NEAREST):
194 result = SerialDate.getNearestDayOfWeek(this.dayOfWeek,
195 base);
196 break;
197 case(SerialDate.FOLLOWING):
198 result = SerialDate.getFollowingDayOfWeek(this.dayOfWeek,
199 base);
200 break;
201 default:
202 break;
203 }
204 }
205 return result;
206
207 }
208
209 }
1 /* ========================================================================
2 * JCommon : библиотека классов общего назначения для платформы Java(tm)
3 * ========================================================================
4 *
5 * (C) Copyright 2000–2005, by Object Refinery Limited and Contributors.
...
36 */
37 package org.jfree.date;
38
39 import java.io.Serializable;
40 import java.util.*;
41
42 /**
43 * Абстрактный класс, представляющий неизменяемые даты с точностью
44 * до одного дня. Реализация отображает дату на целое число, представляющее
45 * смещение в днях от фиксированной точки отсчета.
46 *
47 * Почему не использовать java.util.Date? Будем использовать, где это имеет смысл.
48 * Класс java.util.Date бывает *слишком* точным - он представляет момент
49 * времени с точностью до 1/100 секунды (при этом сама дата зависит от часового
50 * пояса). Иногда бывает нужно просто представить конкретный день (скажем,
51 * 21 января 2015), не заботясь о времени суток, часовом поясе и т.д.
52 * Именно для таких ситуаций определяется класс DayDate.
53 *
54 * Для создания экземпляра используется DayDateFactory.makeDate.
55 *
56 * @author Дэвид Гилберт
57 * @author Роберт С. Мартин провел значительную переработку.
58 */
59
60 public abstract class DayDate implements Comparable, Serializable {
61 public abstract int getOrdinalDay();