26 *
27 * ---------------
28 * SerialDate.java
29 * ---------------
30 * (C) Copyright 2001–2005, by Object Refinery Limited.
31 *
32 * Автор: Дэвид Гилберт (для Object Refinery Limited);
33 * Участники: -;
34 *
35 * $Id: SerialDate.java,v 1.7 2005/11/03 09:25:17 mungady Exp $
36 *
37 * Изменения (начиная с 11 октября 2001)
38 * --------------------------
39 * 11.10.2001 : Реорганизация класса и его перемещение в новый пакет
40 * com.jrefinery.date (DG);
41 * 05.12.2001 : Добавление метода getDescription(), исключение класса
42 * NotableDate (DG);
43 * 12.12.2001 : После удаления класса NotableDate IBD требует наличия
44 * метода setDescription() (DG); исправлены ошибки
45 * в функциях getPreviousDayOfWeek(), getFollowingDayOfWeek()
46 * и getNearestDayOfWeek() (DG);
47 * 05.12.2001 : Исправление ошибки в классе SpreadsheetDate (DG);
48 * 29.05.2002 : Перемещение констант месяцев в отдельный интерфейс
49 * (MonthConstants) (DG);
50 * 27.08.2002 : Исправление ошибки в addMonths(), спасибо N???levka Petr (DG);
51 * 03.10.2002 : Исправление ошибок по информации Checkstyle (DG);
52 * 13.03.2003 : Реализация Serializable (DG);
53 * 29.05.2003 : Исправление ошибки в методе addMonths (DG);
54 * 04.09.2003 : Реализация Comparable. Обновление Javadoс для isInRange (DG);
55 * 05.01.2005 : Исправление ошибки в методе addYears() (1096282) (DG);
56 *
57 */
58
59 package org.jfree.date;
60
61 import java.io.Serializable;
62 import java.text.DateFormatSymbols;
63 import java.text.SimpleDateFormat;
64 import java.util.Calendar;
65 import java.util.GregorianCalendar;
66
67 /**
68 * Абстрактный класс, определяющий требования для манипуляций с датами
69 * без привязки к конкретной реализации.
70 *
71 * Требование 1 : совпадение с представлением дат в формате Excel;
72 * Требование 2 : класс должен быть неизменным;
73 *
74 * Почему не использовать java.util.Date? Будем использовать, где это имеет смысл.
75 * Класс java.util.Date бывмает *слишком* точным - он представляет момент
76 * времени с точностью до 1/100 секунды (при этом сама дата зависит от часового
77 * пояса). Иногда бывает нужно просто представить конкретный день (скажем,
78 * 21 января 2015), не заботясь о времени суток, часовом поясе и т.д.
79 * Именно для таких ситуаций определяется класс SerialDate.
80 *
81 * Вы можете вызвать getInstance() для получения конкретного субкласса