⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calendar.java

📁 this gcc-g++-3.3.1.tar.gz is a source file of gcc, you can learn more about gcc through this codes f
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    return time;  }  /**   * Sets this Calendar's time to the given Time.  All time fields   * are invalidated by this method.   * @param time the time in milliseconds since the epoch   * @specnote This was made public in 1.4.   */  public void setTimeInMillis(long time)  {    this.time = time;    isTimeSet = true;    computeFields();  }  /**   * Gets the value of the specified field.  They are recomputed   * if they are invalid.   * @param field the time field. One of the time field constants.   * @return the value of the specified field   */  public final int get(int field)  {    // If the requested field is invalid, force all fields to be recomputed.    if (!isSet[field])      areFieldsSet = false;    complete();    return fields[field];  }  /**   * Gets the value of the specified field. This method doesn't    * recompute the fields, if they are invalid.   * @param field the time field. One of the time field constants.   * @return the value of the specified field, undefined if   * <code>areFieldsSet</code> or <code>isSet[field]</code> is false.   */  protected final int internalGet(int field)  {    return fields[field];  }  /**   * Sets the time field with the given value.  This does invalidate   * the time in milliseconds.   * @param field the time field. One of the time field constants   * @param value the value to be set.   */  public final void set(int field, int value)  {    isTimeSet = false;    fields[field] = value;    isSet[field] = true;    switch (field)      {      case YEAR:      case MONTH:      case DATE:	isSet[WEEK_OF_YEAR] = false;	isSet[DAY_OF_YEAR] = false;	isSet[WEEK_OF_MONTH] = false;	isSet[DAY_OF_WEEK] = false;	isSet[DAY_OF_WEEK_IN_MONTH] = false;	break;      case AM_PM:	isSet[HOUR_OF_DAY] = false;	break;      case HOUR_OF_DAY:	isSet[AM_PM] = false;	isSet[HOUR] = false;	break;      case HOUR:	isSet[HOUR_OF_DAY] = false;	break;      }  }  /**   * Sets the fields for year, month, and date   * @param year the year.   * @param month the month, one of the constants JANUARY..UNDICEMBER.   * @param date the day of the month   */  public final void set(int year, int month, int date)  {    isTimeSet = false;    fields[YEAR] = year;    fields[MONTH] = month;    fields[DATE] = date;    isSet[YEAR] = isSet[MONTH] = isSet[DATE] = true;    isSet[WEEK_OF_YEAR] = false;    isSet[DAY_OF_YEAR] = false;    isSet[WEEK_OF_MONTH] = false;    isSet[DAY_OF_WEEK] = false;    isSet[DAY_OF_WEEK_IN_MONTH] = false;  }  /**   * Sets the fields for year, month, date, hour, and minute   * @param year the year.   * @param month the month, one of the constants JANUARY..UNDICEMBER.   * @param date the day of the month   * @param hour the hour of day.   * @param minute the minute.   */  public final void set(int year, int month, int date, int hour, int minute)  {    set(year, month, date);    fields[HOUR_OF_DAY] = hour;    fields[MINUTE] = minute;    isSet[HOUR_OF_DAY] = isSet[MINUTE] = true;    isSet[AM_PM] = false;    isSet[HOUR] = false;  }  /**   * Sets the fields for year, month, date, hour, and minute   * @param year the year.   * @param month the month, one of the constants JANUARY..UNDICEMBER.   * @param date the day of the month   * @param hour the hour of day.   * @param minute the minute.   * @param second the second.   */  public final void set(int year, int month, int date,			int hour, int minute, int second)  {    set(year, month, date, hour, minute);    fields[SECOND] = second;    isSet[SECOND] = true;  }  /**   * Clears the values of all the time fields.   */  public final void clear()  {    isTimeSet = false;    areFieldsSet = false;    for (int i = 0; i < FIELD_COUNT; i++)      {	isSet[i] = false;	fields[i] = 0;      }  }  /**   * Clears the values of the specified time field.   * @param field the time field. One of the time field constants.   */  public final void clear(int field)  {    isTimeSet = false;    areFieldsSet = false;    isSet[field] = false;    fields[field] = 0;  }  /**   * Determines if the specified field has a valid value.   * @return true if the specified field has a value.   */  public final boolean isSet(int field)  {    return isSet[field];  }  /**   * Fills any unset fields in the time field list   * @return true if the specified field has a value.     */  protected void complete()  {    if (!isTimeSet)      computeTime();    if (!areFieldsSet)      computeFields();  }  /**   * Compares the given calendar with this.     * @param o the object to that we should compare.   * @return true, if the given object is a calendar, that represents   * the same time (but doesn't necessary have the same fields).   */  public boolean equals(Object o)  {    return (o instanceof Calendar)      && getTimeInMillis() == ((Calendar) o).getTimeInMillis();  }  /**   * Returns a hash code for this calendar.   * @return a hash code, which fullfits the general contract of    * <code>hashCode()</code>   */  public int hashCode()  {    long time = getTimeInMillis();    return (int) ((time & 0xffffffffL) ^ (time >> 32));  }  /**   * Compares the given calendar with this.     * @param o the object to that we should compare.   * @return true, if the given object is a calendar, and this calendar   * represents a smaller time than the calendar o.   * @exception ClassCastException if o is not an calendar.   * @since JDK1.2 you don't need to override this method   */  public boolean before(Object o)  {    return getTimeInMillis() < ((Calendar) o).getTimeInMillis();  }  /**   * Compares the given calendar with this.     * @param o the object to that we should compare.   * @return true, if the given object is a calendar, and this calendar   * represents a bigger time than the calendar o.   * @exception ClassCastException if o is not an calendar.   * @since JDK1.2 you don't need to override this method   */  public boolean after(Object o)  {    return getTimeInMillis() > ((Calendar) o).getTimeInMillis();  }  /**   * Adds the specified amount of time to the given time field.  The   * amount may be negative to subtract the time.  If the field overflows   * it does what you expect: Jan, 25 + 10 Days is Feb, 4.   * @param field the time field. One of the time field constants.   * @param amount the amount of time.   */  public abstract void add(int field, int amount);  /**   * Rolls the specified time field up or down.  This means add one   * to the specified field, but don't change the other fields.  If   * the maximum for this field is reached, start over with the    * minimum value.  <br>   *   * <strong>Note:</strong> There may be situation, where the other   * fields must be changed, e.g rolling the month on May, 31.    * The date June, 31 is automatically converted to July, 1.   * @param field the time field. One of the time field constants.   * @param up the direction, true for up, false for down.   */  public abstract void roll(int field, boolean up);  /**   * Rolls up or down the specified time field by the given amount.   * A negative amount rolls down.  The default implementation is   * call <code>roll(int, boolean)</code> for the specified amount.   *   * Subclasses should override this method to do more intuitiv things.   *   * @param field the time field. One of the time field constants.   * @param amount the amount to roll by, positive for rolling up,   * negative for rolling down.     * @since JDK1.2   */  public void roll(int field, int amount)  {    while (amount > 0)      {	roll(field, true);	amount--;      }    while (amount < 0)      {	roll(field, false);	amount++;      }  }  /**   * Sets the time zone to the specified value.   * @param zone the new time zone   */  public void setTimeZone(TimeZone zone)  {    this.zone = zone;  }  /**   * Gets the time zone of this calendar   * @return the current time zone.   */  public TimeZone getTimeZone()  {    return zone;  }  /**   * Specifies if the date/time interpretation should be lenient.   * If the flag is set, a date such as "February 30, 1996" will be   * treated as the 29th day after the February 1.  If this flag   * is false, such dates will cause an exception.   * @param lenient true, if the date should be interpreted linient,   * false if it should be interpreted strict.   */  public void setLenient(boolean lenient)  {    this.lenient = lenient;  }  /**   * Tells if the date/time interpretation is lenient.   * @return true, if the date should be interpreted linient,   * false if it should be interpreted strict.   */  public boolean isLenient()  {    return lenient;  }  /**   * Sets what the first day of week is.  This is used for   * WEEK_OF_MONTH and WEEK_OF_YEAR fields.    * @param value the first day of week.  One of SUNDAY to SATURDAY.   */  public void setFirstDayOfWeek(int value)  {    firstDayOfWeek = value;  }  /**   * Gets what the first day of week is.  This is used for   * WEEK_OF_MONTH and WEEK_OF_YEAR fields.    * @return the first day of week.  One of SUNDAY to SATURDAY.   */  public int getFirstDayOfWeek()  {    return firstDayOfWeek;  }  /**   * Sets how many days are required in the first week of the year.   * If the first day of the year should be the first week you should   * set this value to 1.  If the first week must be a full week, set   * it to 7.   * @param value the minimal days required in the first week.   */  public void setMinimalDaysInFirstWeek(int value)  {    minimalDaysInFirstWeek = value;  }  /**   * Gets how many days are required in the first week of the year.   * @return the minimal days required in the first week.   * @see #setMinimalDaysInFirstWeek   */  public int getMinimalDaysInFirstWeek()  {    return minimalDaysInFirstWeek;  }  /**   * Gets the smallest value that is allowed for the specified field.   * @param field the time field. One of the time field constants.   * @return the smallest value.   */  public abstract int getMinimum(int field);  /**   * Gets the biggest value that is allowed for the specified field.   * @param field the time field. One of the time field constants.   * @return the biggest value.   */  public abstract int getMaximum(int field);  /**   * Gets the greatest minimum value that is allowed for the specified field.   * @param field the time field. One of the time field constants.   * @return the greatest minimum value.   */  public abstract int getGreatestMinimum(int field);  /**   * Gets the smallest maximum value that is allowed for the   * specified field.  For example this is 28 for DAY_OF_MONTH.   * @param field the time field. One of the time field constants.   * @return the least maximum value.     */  public abstract int getLeastMaximum(int field);  /**   * Gets the actual minimum value that is allowed for the specified field.   * This value is dependent on the values of the other fields.   * @param field the time field. One of the time field constants.   * @return the actual minimum value.   * @since jdk1.2   */  // FIXME: XXX: Not abstract in JDK 1.2.  public abstract int getActualMinimum(int field);  /**   * Gets the actual maximum value that is allowed for the specified field.   * This value is dependent on the values of the other fields.   * @param field the time field. One of the time field constants.   * @return the actual maximum value.     * @since jdk1.2   */  // FIXME: XXX: Not abstract in JDK 1.2.  public abstract int getActualMaximum(int field);  /**   * Return a clone of this object.   */  public Object clone()  {    try      {	Calendar cal = (Calendar) super.clone();	cal.fields = (int[]) fields.clone();	cal.isSet = (boolean[])isSet.clone();	return cal;      }    catch (CloneNotSupportedException ex)      {	return null;      }  }  private final static String[] fieldNames = {    ",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="  };  /**   * Returns a string representation of this object.  It is mainly   * for debugging purposes and its content is implementation   * specific.   */  public String toString()  {    StringBuffer sb = new StringBuffer();    sb.append(getClass().getName()).append('[');    sb.append("time=");    if (isTimeSet)      sb.append(time);    else      sb.append("?");    sb.append(",zone=" + zone);    sb.append(",areFieldsSet=" + areFieldsSet);    for (int i = 0; i < FIELD_COUNT; i++)      {	sb.append(fieldNames[i]);	if (isSet[i])	  sb.append(fields[i]);	else	  sb.append("?");      }    sb.append(",lenient=").append(lenient);    sb.append(",firstDayOfWeek=").append(firstDayOfWeek);    sb.append(",minimalDaysInFirstWeek=").append(minimalDaysInFirstWeek);    sb.append("]");    return sb.toString();  }  /**   * Saves the state of the object to the stream.  Ideally we would   * only write the time field, but we need to be compatible with   * earlier versions. <br>   *   * This doesn't write the JDK1.1 field nextStamp to the stream, as   * I don't know what it is good for, and because the documentation   * says, that it could be omitted.  */  private void writeObject(ObjectOutputStream stream) throws IOException  {    if (!isTimeSet)      computeTime();    stream.defaultWriteObject();  }  /**   * Reads the object back from stream (deserialization).   */  private void readObject(ObjectInputStream stream)    throws IOException, ClassNotFoundException  {    stream.defaultReadObject();    if (!isTimeSet)      computeTime();    if (serialVersionOnStream > 1)      {	// This is my interpretation of the serial number:	// Sun wants to remove all fields from the stream someday	// and will then increase the serialVersion number again.	// We prepare to be compatible.	fields = new int[FIELD_COUNT];	isSet = new boolean[FIELD_COUNT];	areFieldsSet = false;      }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -