home *** CD-ROM | disk | FTP | other *** search
- package java.util;
-
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.io.Serializable;
- import java.text.DateFormat;
-
- public abstract class Calendar implements Serializable, Cloneable {
- public static final int ERA = 0;
- public static final int YEAR = 1;
- public static final int MONTH = 2;
- public static final int WEEK_OF_YEAR = 3;
- public static final int WEEK_OF_MONTH = 4;
- public static final int DATE = 5;
- public static final int DAY_OF_MONTH = 5;
- public static final int DAY_OF_YEAR = 6;
- public static final int DAY_OF_WEEK = 7;
- public static final int DAY_OF_WEEK_IN_MONTH = 8;
- public static final int AM_PM = 9;
- public static final int HOUR = 10;
- public static final int HOUR_OF_DAY = 11;
- public static final int MINUTE = 12;
- public static final int SECOND = 13;
- public static final int MILLISECOND = 14;
- public static final int ZONE_OFFSET = 15;
- public static final int DST_OFFSET = 16;
- public static final int FIELD_COUNT = 17;
- public static final int SUNDAY = 1;
- public static final int MONDAY = 2;
- public static final int TUESDAY = 3;
- public static final int WEDNESDAY = 4;
- public static final int THURSDAY = 5;
- public static final int FRIDAY = 6;
- public static final int SATURDAY = 7;
- public static final int JANUARY = 0;
- public static final int FEBRUARY = 1;
- public static final int MARCH = 2;
- public static final int APRIL = 3;
- public static final int MAY = 4;
- public static final int JUNE = 5;
- public static final int JULY = 6;
- public static final int AUGUST = 7;
- public static final int SEPTEMBER = 8;
- public static final int OCTOBER = 9;
- public static final int NOVEMBER = 10;
- public static final int DECEMBER = 11;
- public static final int UNDECIMBER = 12;
- // $FF: renamed from: AM int
- public static final int field_0 = 0;
- // $FF: renamed from: PM int
- public static final int field_1 = 1;
- protected int[] fields;
- protected boolean[] isSet;
- transient int[] stamp;
- protected long time;
- protected boolean isTimeSet;
- protected boolean areFieldsSet;
- transient boolean areAllFieldsSet;
- private boolean lenient;
- private TimeZone zone;
- private int firstDayOfWeek;
- private int minimalDaysInFirstWeek;
- private static Hashtable cachedLocaleData = new Hashtable(3);
- static final int UNSET = 0;
- static final int INTERNALLY_SET = 1;
- static final int MINIMUM_USER_STAMP = 2;
- private int nextStamp;
- static final int currentSerialVersion = 1;
- private int serialVersionOnStream;
- static final long serialVersionUID = -1807547505821590642L;
- private static final String[] FIELD_NAME = new String[]{",ERA=", ",YEAR=", ",MONTH=", ",WEEK_OF_YEAR=", ",WEEK_OF_MONTH=", ",DAY_OF_MONTH=", ",DAY_OF_YEAR=", ",DAY_OF_WEEK=", ",DAY_OF_WEEK_IN_MONTH=", ",AM_PM=", ",HOUR=", ",HOUR_OF_DAY=", ",MINUTE=", ",SECOND=", ",MILLISECOND=", ",ZONE_OFFSET=", ",DST_OFFSET="};
-
- protected Calendar() {
- this(TimeZone.getDefault(), Locale.getDefault());
- }
-
- protected Calendar(TimeZone var1, Locale var2) {
- this.lenient = true;
- this.nextStamp = 2;
- this.serialVersionOnStream = 1;
- this.fields = new int[17];
- this.isSet = new boolean[17];
- this.stamp = new int[17];
- this.zone = var1;
- this.setWeekCountData(var2);
- }
-
- public static synchronized Calendar getInstance() {
- return new GregorianCalendar();
- }
-
- public static synchronized Calendar getInstance(TimeZone var0) {
- return new GregorianCalendar(var0, Locale.getDefault());
- }
-
- public static synchronized Calendar getInstance(Locale var0) {
- return new GregorianCalendar(TimeZone.getDefault(), var0);
- }
-
- public static synchronized Calendar getInstance(TimeZone var0, Locale var1) {
- return new GregorianCalendar(var0, var1);
- }
-
- public static synchronized Locale[] getAvailableLocales() {
- return DateFormat.getAvailableLocales();
- }
-
- protected abstract void computeTime();
-
- protected abstract void computeFields();
-
- public final Date getTime() {
- return new Date(this.getTimeInMillis());
- }
-
- public final void setTime(Date var1) {
- this.setTimeInMillis(var1.getTime());
- }
-
- protected long getTimeInMillis() {
- if (!this.isTimeSet) {
- this.updateTime();
- }
-
- return this.time;
- }
-
- protected void setTimeInMillis(long var1) {
- this.isTimeSet = true;
- this.time = var1;
- this.areFieldsSet = false;
- if (!this.areFieldsSet) {
- this.computeFields();
- this.areFieldsSet = true;
- this.areAllFieldsSet = true;
- }
-
- }
-
- public final int get(int var1) {
- this.complete();
- return this.fields[var1];
- }
-
- protected final int internalGet(int var1) {
- return this.fields[var1];
- }
-
- final void internalSet(int var1, int var2) {
- this.fields[var1] = var2;
- }
-
- public final void set(int var1, int var2) {
- this.isTimeSet = false;
- this.fields[var1] = var2;
- this.stamp[var1] = this.nextStamp++;
- this.areFieldsSet = false;
- this.isSet[var1] = true;
- }
-
- public final void set(int var1, int var2, int var3) {
- this.set(1, var1);
- this.set(2, var2);
- this.set(5, var3);
- }
-
- public final void set(int var1, int var2, int var3, int var4, int var5) {
- this.set(1, var1);
- this.set(2, var2);
- this.set(5, var3);
- this.set(11, var4);
- this.set(12, var5);
- }
-
- public final void set(int var1, int var2, int var3, int var4, int var5, int var6) {
- this.set(1, var1);
- this.set(2, var2);
- this.set(5, var3);
- this.set(11, var4);
- this.set(12, var5);
- this.set(13, var6);
- }
-
- public final void clear() {
- this.fields = new int[17];
- this.stamp = new int[17];
- this.areFieldsSet = false;
- this.areAllFieldsSet = false;
- this.isSet = new boolean[17];
- }
-
- public final void clear(int var1) {
- this.fields[var1] = 0;
- this.stamp[var1] = 0;
- this.areFieldsSet = false;
- this.areAllFieldsSet = false;
- this.isSet[var1] = false;
- }
-
- public final boolean isSet(int var1) {
- return this.stamp[var1] != 0;
- }
-
- protected void complete() {
- if (!this.isTimeSet) {
- this.updateTime();
- }
-
- if (!this.areFieldsSet) {
- this.computeFields();
- this.areFieldsSet = true;
- this.areAllFieldsSet = true;
- }
-
- }
-
- public abstract boolean equals(Object var1);
-
- public abstract boolean before(Object var1);
-
- public abstract boolean after(Object var1);
-
- public abstract void add(int var1, int var2);
-
- public abstract void roll(int var1, boolean var2);
-
- public void setTimeZone(TimeZone var1) {
- this.zone = var1;
- }
-
- public TimeZone getTimeZone() {
- return this.zone;
- }
-
- public void setLenient(boolean var1) {
- this.lenient = var1;
- }
-
- public boolean isLenient() {
- return this.lenient;
- }
-
- public void setFirstDayOfWeek(int var1) {
- this.firstDayOfWeek = var1;
- }
-
- public int getFirstDayOfWeek() {
- return this.firstDayOfWeek;
- }
-
- public void setMinimalDaysInFirstWeek(int var1) {
- this.minimalDaysInFirstWeek = var1;
- }
-
- public int getMinimalDaysInFirstWeek() {
- return this.minimalDaysInFirstWeek;
- }
-
- public abstract int getMinimum(int var1);
-
- public abstract int getMaximum(int var1);
-
- public abstract int getGreatestMinimum(int var1);
-
- public abstract int getLeastMaximum(int var1);
-
- public Object clone() {
- try {
- Calendar var1 = (Calendar)super.clone();
- var1.fields = new int[17];
- var1.isSet = new boolean[17];
- var1.stamp = new int[17];
- System.arraycopy(this.fields, 0, var1.fields, 0, 17);
- System.arraycopy(this.isSet, 0, var1.isSet, 0, 17);
- System.arraycopy(this.stamp, 0, var1.stamp, 0, 17);
- var1.zone = (TimeZone)this.zone.clone();
- return var1;
- } catch (CloneNotSupportedException var2) {
- throw new InternalError();
- }
- }
-
- public String toString() {
- StringBuffer var1 = new StringBuffer();
- var1.append(this.getClass().getName());
- var1.append("[time=");
- var1.append(this.isTimeSet ? String.valueOf(this.time) : "?");
- var1.append(",areFieldsSet=");
- var1.append(this.areFieldsSet);
- var1.append(",areAllFieldsSet=");
- var1.append(this.areAllFieldsSet);
- var1.append(",lenient=");
- var1.append(this.lenient);
- var1.append(",zone=");
- var1.append(this.zone);
- var1.append(",firstDayOfWeek=");
- var1.append(this.firstDayOfWeek);
- var1.append(",minimalDaysInFirstWeek=");
- var1.append(this.minimalDaysInFirstWeek);
-
- for(int var2 = 0; var2 < 17; ++var2) {
- var1.append(FIELD_NAME[var2]);
- var1.append(this.isSet(var2) ? String.valueOf(this.fields[var2]) : "?");
- }
-
- var1.append(']');
- return var1.toString();
- }
-
- private void setWeekCountData(Locale var1) {
- int[] var2 = (int[])cachedLocaleData.get(var1);
- if (var2 == null) {
- ResourceBundle var3 = ResourceBundle.getBundle("java.text.resources.LocaleElements", var1);
- String[] var4 = var3.getStringArray("DateTimeElements");
- var2 = new int[]{Integer.parseInt(var4[0]), Integer.parseInt(var4[1])};
- cachedLocaleData.put(var1, var2);
- }
-
- this.firstDayOfWeek = var2[0];
- this.minimalDaysInFirstWeek = var2[1];
- }
-
- private void updateTime() {
- this.computeTime();
- if (this.isLenient() || !this.areAllFieldsSet) {
- this.areFieldsSet = false;
- }
-
- this.isTimeSet = true;
- }
-
- private void writeObject(ObjectOutputStream var1) throws IOException {
- if (!this.isTimeSet) {
- try {
- this.updateTime();
- } catch (IllegalArgumentException var2) {
- }
- }
-
- var1.defaultWriteObject();
- }
-
- private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
- var1.defaultReadObject();
- this.stamp = new int[17];
- if (this.serialVersionOnStream >= 2) {
- this.isTimeSet = true;
- if (this.fields == null) {
- this.fields = new int[17];
- }
-
- if (this.isSet == null) {
- this.isSet = new boolean[17];
- }
- } else if (this.serialVersionOnStream == 0) {
- for(int var2 = 0; var2 < 17; ++var2) {
- this.stamp[var2] = this.isSet[var2] ? 1 : 0;
- }
- }
-
- this.serialVersionOnStream = 1;
- }
- }
-