JavaTM Platform
Standard Ed. 6

java.util
クラス GregorianCalendar

java.lang.Object
  上位を拡張 java.util.Calendar
      上位を拡張 java.util.GregorianCalendar
すべての実装されたインタフェース:
Serializable, Cloneable, Comparable<Calendar>

public class GregorianCalendar
extends Calendar

GregorianCalendar は、Calendar の具象サブクラスであり、世界のほとんどの地域で使用される標準的なカレンダシステムを提供します。

GregorianCalendar は、グレゴリオ暦とユリウス暦をサポートするハイブリッドカレンダシステムで、単一の変わり目を処理します。この変わり目は、デフォルトでは、グレゴリオ暦が制定された日 (一部の国では 1582 年 10 月 15 日、その他の国ではそれ以後) に対応しています。調整日は、setGregorianChange() を呼び出すことによって呼び出し側で変更できます。

歴史的に、グレゴリオ暦を最初に採用した国々では、1582 年 10 月 4 日 (ユリウス歴) のあとに 1582 年 10 月 15 日 (グレゴリオ歴) が続きました。このカレンダはこれを正確にモデル化しています。グレゴリオ暦への切り換え日の前は、GregorianCalendar ではユリウス暦を実装しています。グレゴリオ暦とユリウス暦の唯一の違いはうるう年の規則です。ユリウス暦は 4 年ごとにうるう年を指定しますが、グレゴリオ暦では、400 で割り切れない世紀の初年をうるう年にしません。

GregorianCalendar は、「予期的」グレゴリオ暦およびユリウス暦を実装します。すなわち、日付の計算では、現在の規則を無限の過去あるいは未来に向けて適用します。このため、GregorianCalendar はすべての年について一貫した結果を生成するために使用できます。ただし、GregorianCalendar を使用して得られた日付は、歴史的に、現代と同様のユリウス暦が採用された AD 4 年 3 月 1 日以降の日付だけが正確です。この日付より前には、うるう年の規則は不規則に適用されており、BC 45 年以前にはユリウス暦は存在さえしていませんでした。

グレゴリオ暦の制定より前は、元日は 3 月 25 日でした。混乱を避けるために、このカレンダでは常に 1 月 1 日を使います。必要であれば、グレゴリオ暦より前の日付に対し、1 月 1 日から 3 月 24 日の間の日に調整することができます。

WEEK_OF_YEAR フィールドに対して計算される値の範囲は、1 から 53 です。年の第 1 週は、その年から少なくとも getMinimalDaysInFirstWeek() 日を含む getFirstDayOfWeek() で始まるもっとも早い 7 日間です。このように第 1 週は getMinimalDaysInFirstWeek()getFirstDayOfWeek() の値、および 1 月 1 日の曜日により変化します。ある年の第 1 週から翌年の第 1 週までの週は、必要に応じて 2 から 52 または 53 まで順に番号が付けられます。

たとえば、1998 年 1 月 1 日は木曜日でした。getFirstDayOfWeek()MONDAYgetMinimalDaysInFirstWeek() が 4 の場合 (これらは ISO 8601 および多数の国の標準)、1998 年の第 1 週は 1997年 12 月 29 日から、1998 年 1 月 4 日までです。ただし、getFirstDayOfWeek()SUNDAY の場合、1998 年の第 1 週は 1998 年 1 月 4 日から、1998 年 1 月 10 日までです。1998 年の最初の 3 日間は 1997 年の第 53 週に入ります。

WEEK_OF_MONTH フィールドに対して計算される値の範囲は、0 から 6 です。月の第 1 週 (WEEK_OF_MONTH = 1 の日) は、その月で少なくとも getMinimalDaysInFirstWeek() 日間連続するもっとも早い週になり、getFirstDayOfWeek() の前日までです。年の第 1 週とは異なり、月の第 1 週は 7 日より短いことがあり、getFirstDayOfWeek() で始まる必要はなく、前の月の日は含まれません。第 1 週より前の月の日には、WEEK_OF_MONTH の値は 0 になります。

たとえば、getFirstDayOfWeek()SUNDAYgetMinimalDaysInFirstWeek() が 4 の場合、1998 年 1 月の第 1 週は 1 月 4 日日曜日から 1 月 10 日土曜日になります。これらの日の WEEK_OF_MONTH の値は 1 です。1 月 1 日木曜日から 1 月 3 日土曜日の WEEK_OF_MONTH の値は 0 です。getMinimalDaysInFirstWeek() の値が 3 に変更されると、1 月 1 日から 1 月 3 日の WEEK_OF_MONTH の値は 1 になります。

clear メソッドは、カレンダフィールドを未定義に設定します。GregorianCalendar は、値が未定義の場合、各カレンダフィールドで次のデフォルト値を使用します。

フィールド
デフォルト値
ERA
AD
YEAR
1970
MONTH
JANUARY
DAY_OF_MONTH
1
DAY_OF_WEEK
週の最初の日
WEEK_OF_MONTH
0
DAY_OF_WEEK_IN_MONTH
1
AM_PM
AM
HOUR、HOUR_OF_DAY、MINUTE、SECOND、MILLISECOND
0

前述のリストに含まれないフィールドについては、デフォルト値は適用されません。

例:

 // get the supported ids for GMT-08:00 (Pacific Standard Time)
 String[] ids = TimeZone.getAvailableIDs(-8 * 60 * 60 * 1000);
 // if no ids were returned, something is wrong. get out.
 if (ids.length == 0)
     System.exit(0);

  // begin output
 System.out.println("Current Time");

 // create a Pacific Standard Time time zone
 SimpleTimeZone pdt = new SimpleTimeZone(-8 * 60 * 60 * 1000, ids[0]);

 // set up rules for daylight savings time
 pdt.setStartRule(Calendar.APRIL, 1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);
 pdt.setEndRule(Calendar.OCTOBER, -1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);

 // create a GregorianCalendar with the Pacific Daylight time zone
 // and the current date and time
 Calendar calendar = new GregorianCalendar(pdt);
 Date trialTime = new Date();
 calendar.setTime(trialTime);

 // print out a bunch of interesting things
 System.out.println("ERA: " + calendar.get(Calendar.ERA));
 System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
 System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
 System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
 System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
 System.out.println("DATE: " + calendar.get(Calendar.DATE));
 System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
 System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
 System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
 System.out.println("DAY_OF_WEEK_IN_MONTH: "
                    + calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
 System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
 System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
 System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
 System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
 System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
 System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
 System.out.println("ZONE_OFFSET: "
                    + (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000)));
 System.out.println("DST_OFFSET: "
                    + (calendar.get(Calendar.DST_OFFSET)/(60*60*1000)));

 System.out.println("Current Time, with hour reset to 3");
 calendar.clear(Calendar.HOUR_OF_DAY); // so doesn't override
 calendar.set(Calendar.HOUR, 3);
 System.out.println("ERA: " + calendar.get(Calendar.ERA));
 System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
 System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
 System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
 System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
 System.out.println("DATE: " + calendar.get(Calendar.DATE));
 System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
 System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
 System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
 System.out.println("DAY_OF_WEEK_IN_MONTH: "
                    + calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
 System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
 System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
 System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
 System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
 System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
 System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
 System.out.println("ZONE_OFFSET: "
        + (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000))); // in hours
 System.out.println("DST_OFFSET: "
        + (calendar.get(Calendar.DST_OFFSET)/(60*60*1000))); // in hours
 

導入されたバージョン:
JDK1.1
関連項目:
TimeZone, 直列化された形式

フィールドの概要
static int AD
          キリスト紀元 (西暦) を示す ERA フィールドの値であり、CE とも呼ばれます。
static int BC
          キリスト紀元 (BC) より前の期間を示す ERA フィールドの値であり、BCE とも呼ばれます。
 
クラス java.util.Calendar から継承されたフィールド
ALL_STYLES, AM, AM_PM, APRIL, areFieldsSet, AUGUST, DATE, DAY_OF_MONTH, DAY_OF_WEEK, DAY_OF_WEEK_IN_MONTH, DAY_OF_YEAR, DECEMBER, DST_OFFSET, ERA, FEBRUARY, FIELD_COUNT, fields, FRIDAY, HOUR, HOUR_OF_DAY, isSet, isTimeSet, JANUARY, JULY, JUNE, LONG, MARCH, MAY, MILLISECOND, MINUTE, MONDAY, MONTH, NOVEMBER, OCTOBER, PM, SATURDAY, SECOND, SEPTEMBER, SHORT, SUNDAY, THURSDAY, time, TUESDAY, UNDECIMBER, WEDNESDAY, WEEK_OF_MONTH, WEEK_OF_YEAR, YEAR, ZONE_OFFSET
 
コンストラクタの概要
GregorianCalendar()
          デフォルトロケールでデフォルトタイムゾーンの現在時刻に基づいてデフォルトの GregorianCalendar を構築します。
GregorianCalendar(int year, int month, int dayOfMonth)
          指定されたロケール デフォルトロケールでデフォルトタイムゾーンの指定された日付に基づいて GregorianCalendar を構築します。
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute)
          デフォルトロケールでデフォルトタイムゾーンの指定された日付と時刻に基づいて GregorianCalendar を構築します。
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second)
          デフォルトロケールでデフォルトタイムゾーンの指定された日付と時刻に基づいて GregorianCalendar を構築します。
GregorianCalendar(Locale aLocale)
          指定されたロケールでデフォルトのタイムゾーンの現在時刻に基づいて GregorianCalendar を構築します。
GregorianCalendar(TimeZone zone)
          デフォルトロケールで指定されたタイムゾーンの現在時刻に基づいて GregorianCalendar を構築します。
GregorianCalendar(TimeZone zone, Locale aLocale)
          指定されたロケールで指定されたタイムゾーンの現在時刻に基づいて GregorianCalendar を構築します。
 
メソッドの概要
 void add(int field, int amount)
          カレンダの規則に基づいて、指定された (符号付きの) 時間量を、指定されたカレンダフィールドに加えます。
 Object clone()
          このオブジェクトのコピーを作成して、返します。
protected  void computeFields()
          時刻値 (エポックからのミリ秒単位のオフセット) をカレンダフィールド値に変換します。
protected  void computeTime()
          カレンダフィールド値を時間値 (エポックからのミリ秒単位のオフセット) に変換します。
 boolean equals(Object obj)
          この GregorianCalendar を指定された Object と比較します。
 int getActualMaximum(int field)
          このカレンダフィールドが持つことのできる最大値が返されます。
 int getActualMinimum(int field)
          このカレンダフィールドが持つことのできる最小値が返されます。
 int getGreatestMinimum(int field)
          この GregorianCalendar インスタンスに指定されたカレンダフィールドの最大最小値が返されます。
 Date getGregorianChange()
          グレゴリオ暦の切り換え日を取得します。
 int getLeastMaximum(int field)
          この GregorianCalendar インスタンスに指定されたカレンダフィールドの最小最大値が返されます。
 int getMaximum(int field)
          この GregorianCalendar インスタンスに指定されたカレンダフィールドの最大値が返されます。
 int getMinimum(int field)
          この GregorianCalendar インスタンスに指定されたカレンダフィールドの最小値が返されます。
 TimeZone getTimeZone()
          タイムゾーンを取得します。
 int hashCode()
          この GregorianCalendar オブジェクトのハッシュコードを生成します。
 boolean isLeapYear(int year)
          指定された年が、うるう年かどうかを判定します。
 void roll(int field, boolean up)
          大きいフィールドを変更せずに指定された時間フィールドの 1 つの単位の時間を上または下に加算または減算します。
 void roll(int field, int amount)
          大きいフィールドを変更せずに、符号付きの量を指定されたカレンダフィールドに加えます。
 void setGregorianChange(Date date)
          GregorianCalendar の切り換え日を設定します。
 void setTimeZone(TimeZone zone)
          指定されたタイムゾーン値を使用してタイムゾーンを設定します。
 
クラス java.util.Calendar から継承されたメソッド
after, before, clear, clear, compareTo, complete, get, getAvailableLocales, getDisplayName, getDisplayNames, getFirstDayOfWeek, getInstance, getInstance, getInstance, getInstance, getMinimalDaysInFirstWeek, getTime, getTimeInMillis, internalGet, isLenient, isSet, set, set, set, set, setFirstDayOfWeek, setLenient, setMinimalDaysInFirstWeek, setTime, setTimeInMillis, toString
 
クラス java.lang.Object から継承されたメソッド
finalize, getClass, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

BC

public static final int BC
キリスト紀元 (BC) より前の期間を示す ERA フィールドの値であり、BCE とも呼ばれます。BC から AD へは次のように移行します。 ..., 2 BC, 1 BC, 1 AD, 2 AD,...

関連項目:
Calendar.ERA, 定数フィールド値

AD

public static final int AD
キリスト紀元 (西暦) を示す ERA フィールドの値であり、CE とも呼ばれます。BC から AD へは次のように移行します。 ..., 2 BC, 1 BC, 1 AD, 2 AD,...

関連項目:
Calendar.ERA, 定数フィールド値
コンストラクタの詳細

GregorianCalendar

public GregorianCalendar()
デフォルトロケールでデフォルトタイムゾーンの現在時刻に基づいてデフォルトの GregorianCalendar を構築します。


GregorianCalendar

public GregorianCalendar(TimeZone zone)
デフォルトロケールで指定されたタイムゾーンの現在時刻に基づいて GregorianCalendar を構築します。

パラメータ:
zone - 指定されたタイムゾーン

GregorianCalendar

public GregorianCalendar(Locale aLocale)
指定されたロケールでデフォルトのタイムゾーンの現在時刻に基づいて GregorianCalendar を構築します。

パラメータ:
aLocale - 指定されたロケール

GregorianCalendar

public GregorianCalendar(TimeZone zone,
                         Locale aLocale)
指定されたロケールで指定されたタイムゾーンの現在時刻に基づいて GregorianCalendar を構築します。

パラメータ:
zone - 指定されたタイムゾーン
aLocale - 指定されたロケール

GregorianCalendar

public GregorianCalendar(int year,
                         int month,
                         int dayOfMonth)
指定されたロケール デフォルトロケールでデフォルトタイムゾーンの指定された日付に基づいて GregorianCalendar を構築します。

パラメータ:
year - カレンダ内の YEAR カレンダフィールドの設定に使用する値
month - カレンダ内の MONTH カレンダフィールドの設定に使用する値。 Month 値は 0 から始まる (1 月 は 0 になる)
dayOfMonth - カレンダ内の DAY_OF_MONTH カレンダフィールドの設定に使用する値

GregorianCalendar

public GregorianCalendar(int year,
                         int month,
                         int dayOfMonth,
                         int hourOfDay,
                         int minute)
デフォルトロケールでデフォルトタイムゾーンの指定された日付と時刻に基づいて GregorianCalendar を構築します。

パラメータ:
year - カレンダ内の YEAR カレンダフィールドの設定に使用する値
month - カレンダ内の MONTH カレンダフィールドの設定に使用する値。 Month 値は 0 から始まる (1 月 は 0 になる)
dayOfMonth - カレンダ内の DAY_OF_MONTH カレンダフィールドの設定に使用する値
hourOfDay - カレンダ内の HOUR_OF_DAY カレンダフィールドの設定に使用する値
minute - カレンダ内の MINUTE カレンダフィールドの設定に使用する値

GregorianCalendar

public GregorianCalendar(int year,
                         int month,
                         int dayOfMonth,
                         int hourOfDay,
                         int minute,
                         int second)
デフォルトロケールでデフォルトタイムゾーンの指定された日付と時刻に基づいて GregorianCalendar を構築します。

パラメータ:
year - カレンダ内の YEAR カレンダフィールドの設定に使用する値
month - カレンダ内の MONTH カレンダフィールドの設定に使用する値。 Month 値は 0 から始まる (1 月 は 0 になる)
dayOfMonth - カレンダ内の DAY_OF_MONTH カレンダフィールドの設定に使用する値
hourOfDay - カレンダ内の HOUR_OF_DAY カレンダフィールドの設定に使用する値
minute - カレンダ内の MINUTE カレンダフィールドの設定に使用する値
second - カレンダ内の SECOND カレンダフィールドの設定に使用する値
メソッドの詳細

setGregorianChange

public void setGregorianChange(Date date)
GregorianCalendar の切り換え日を設定します。これは、ユリウス暦からグレゴリオ暦への切り換えが発生する時点です。デフォルトは 1582 年 10 月 15 日 (グレゴリオ暦) です。これ以前の日付はユリウス暦になります。  

純粋なユリウス暦を取得するには、切り換え日を Date(Long.MAX_VALUE) に設定します。純粋なグレゴリオ歴を取得するには、切り換え日を Date(Long.MIN_VALUE) に設定します。

パラメータ:
date - グレゴリオ暦への変更日付

getGregorianChange

public final Date getGregorianChange()
グレゴリオ暦の切り換え日を取得します。これは、ユリウス暦からグレゴリオ暦への切り換えが発生する時点です。デフォルトは 1582 年 10 月 15 日 (グレゴリオ暦) です。これ以前の日付はユリウス暦になります。

戻り値:
この GregorianCalendar オブジェクトのグレゴリオ暦への切り換え日

isLeapYear

public boolean isLeapYear(int year)
指定された年が、うるう年かどうかを判定します。指定された年がうるう年の場合は、true が返されます。BC 年の数値を指定する場合は、1 - year number を指定する必要があります。たとえば、BC 4 年は -3 と指定します。

パラメータ:
year - 指定する年
戻り値:
指定された年がうるう年の場合は true、そうでない場合は false

equals

public boolean equals(Object obj)
この GregorianCalendar を指定された Object と比較します。引数が、このオブジェクトと同じ Calendar パラメータおよびグレゴリオ暦切り替え日の同じ時刻値 (エポックからのミリ秒単位のオフセット) を表す GregorianCalendar オブジェクトである場合にのみ、結果は true になります。

オーバーライド:
クラス Calendar 内の equals
パラメータ:
obj - 比較対象のオブジェクト
戻り値:
このオブジェクトが obj と等しい場合は true、そうでない場合は false
関連項目:
Calendar.compareTo(Calendar)

hashCode

public int hashCode()
この GregorianCalendar オブジェクトのハッシュコードを生成します。

オーバーライド:
クラス Calendar 内の hashCode
戻り値:
このオブジェクトのハッシュコード値
関連項目:
Object.equals(java.lang.Object), Hashtable

add

public void add(int field,
                int amount)
カレンダの規則に基づいて、指定された (符号付きの) 時間量を、指定されたカレンダフィールドに加えます。

Add rule 1。呼び出しがフィールドで発生したモジュロオーバーフロー amount になる前に、呼び出しでフィールドの値を引いたあとの field の値です。オーバーフローは、フィールドの値が範囲を超え、その結果、次の大きいフィールドが増分または減分されて、フィールドの値がその範囲に入るよう調整された場合に発生します。

Add rule 2。小さいフィールドが不変式であると予想される場合に、field が変更されてから最小値または最大値が変更されたために、その前の値と等しくならないと、フィールドの値はその予想される値にできるだけ近くなるように調整されます。小さいフィールドは、小さい時間の単位を表します。HOUR は、DAY_OF_MONTH よりも小さいフィールドです。不変式ではないと予想される小さいフィールドは、調整されません。カレンダシステムでは、不変式であると予想されるフィールドが判断されます。

定義:
クラス Calendar 内の add
パラメータ:
field - カレンダフィールド
amount - フィールドに追加される日付または時刻の量
例外:
IllegalArgumentException - fieldZONE_OFFSETDST_OFFSET、または不明であるか、いずれかのカレンダフィールドが厳密モードで範囲外の値を保持する場合
関連項目:
Calendar.roll(int,int), Calendar.set(int,int)

roll

public void roll(int field,
                 boolean up)
大きいフィールドを変更せずに指定された時間フィールドの 1 つの単位の時間を上または下に加算または減算します。  

:1999 年 12 月 31 日に当初設定された GregorianCalendar を考えます。 roll(Calendar.MONTH, true) を呼び出すと、カレンダが 1999 年 1 月 31 日に設定されます。Year フィールドは MONTH よりも大きいフィールドなので変更されません。

定義:
クラス Calendar 内の roll
パラメータ:
up - 指定されたカレンダフィールドの値を上へ動かすのか、下へ動かすのかを指定する。 上へ動かす場合は true、そうでない場合は false を使用する
field - 時間フィールド
例外:
IllegalArgumentException - fieldZONE_OFFSETDST_OFFSET、または不明であるか、いずれかのカレンダフィールドが厳密モードで範囲外の値を保持する場合
関連項目:
add(int,int), Calendar.set(int,int)

roll

public void roll(int field,
                 int amount)
大きいフィールドを変更せずに、符号付きの量を指定されたカレンダフィールドに加えます。負のローリング量は、大きいフィールドを変更せずにフィールドから減算することを意味します。指定された量が 0 の場合、このメソッドは何も実行しません。

このメソッドは、量を追加する前に Calendar.complete() を呼び出して、すべてのカレンダフィールドを正規化します。厳密モードで範囲外の値を保持するカレンダフィールドが存在する場合、IllegalArgumentException がスローされます。

:1999 年 8 月 31 日に当初設定された GregorianCalendar を考えます。 roll(Calendar.MONTH, 8) を呼び出すと、カレンダが 1999 年 4 月 30 日に設定されます。GregorianCalendar を使用すると、DAY_OF_MONTH フィールドは 4 月においては 31 日になりません。DAY_OF_MONTH はもっとも近い有効値である 30 に設定されます。YEAR フィールドでは MONTH フィールドより大きいので、1999 の値を維持します。  

:最初に 1999 年 6 月 6 日日曜日に設定された GregorianCalendar を考えます。 roll(Calendar.WEEK_OF_MONTH, -1) を呼び出すと、カレンダが 1999 年 6 月 1 日火曜日に設定され、add(Calendar.WEEK_OF_MONTH, -1) を呼び出すと、カレンダが 1999 年 5 月 30 日日曜日に設定されます。これは、ロール規則で追加の制限が加えられるためです。WEEK_OF_MONTH がロールされるときに MONTH を変更すべきではありません。add rule 1 とともに使用すると、結果の日付は 6 月 1 日火曜日から 6 月 5 日土曜日までになる必要があります。 add rule 2 にしたがって、WEEK_OF_MONTH を変更するときに不変式 DAY_OF_WEEK が、日曜日にもっとも近い可能値である火曜日に設定されます (日曜日が週の最初の日の場合)。

オーバーライド:
クラス Calendar 内の roll
パラメータ:
field - カレンダフィールド
amount - field に追加する指定された量
例外:
IllegalArgumentException - fieldZONE_OFFSETDST_OFFSET、または不明であるか、いずれかのカレンダフィールドが厳密モードで範囲外の値を保持する場合
導入されたバージョン:
1.2
関連項目:
roll(int,boolean), add(int,int), Calendar.set(int,int)

getMinimum

public int getMinimum(int field)
この GregorianCalendar インスタンスに指定されたカレンダフィールドの最小値が返されます。最小値は、getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChange、および getTimeZone の各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対して get メソッドが返す最小値として定義されます。

定義:
クラス Calendar 内の getMinimum
パラメータ:
field - カレンダフィールド
戻り値:
指定されたカレンダフィールドの最小値
関連項目:
getMaximum(int), getGreatestMinimum(int), getLeastMaximum(int), getActualMinimum(int), getActualMaximum(int)

getMaximum

public int getMaximum(int field)
この GregorianCalendar インスタンスに指定されたカレンダフィールドの最大値が返されます。最大値は、getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChange、および getTimeZone の各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対して get メソッドが返す最大値として定義されます。

定義:
クラス Calendar 内の getMaximum
パラメータ:
field - カレンダフィールド
戻り値:
指定されたカレンダフィールドの最大値
関連項目:
getMinimum(int), getGreatestMinimum(int), getLeastMaximum(int), getActualMinimum(int), getActualMaximum(int)

getGreatestMinimum

public int getGreatestMinimum(int field)
この GregorianCalendar インスタンスに指定されたカレンダフィールドの最大最小値が返されます。最大最小値は、getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChange、および getTimeZone の各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対して getActualMinimum(int) メソッドが返す最大値として定義されます。

定義:
クラス Calendar 内の getGreatestMinimum
パラメータ:
field - カレンダフィールド
戻り値:
指定されたカレンダフィールドのもっとも大きい最小値
関連項目:
getMinimum(int), getMaximum(int), getLeastMaximum(int), getActualMinimum(int), getActualMaximum(int)

getLeastMaximum

public int getLeastMaximum(int field)
この GregorianCalendar インスタンスに指定されたカレンダフィールドの最小最大値が返されます。最小最大値は、getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChange、および getTimeZone の各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対して getActualMaximum(int) メソッドが返す最小値として定義されます。

定義:
クラス Calendar 内の getLeastMaximum
パラメータ:
field - カレンダフィールド
戻り値:
指定されたカレンダフィールドの最小最大値
関連項目:
getMinimum(int), getMaximum(int), getGreatestMinimum(int), getActualMinimum(int), getActualMaximum(int)

getActualMinimum

public int getActualMinimum(int field)
このカレンダフィールドが持つことのできる最小値が返されます。このとき、指定された時間値と、getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChange、および getTimeZone の各メソッドの現在値が考慮されます。

たとえば、グレゴリオ暦の変更日が 1970 年 1 月 10 日で、この GregorianCalendar が 1970 年 1 月 20 日だとすると、DAY_OF_MONTH フィールドの実際の最小値は 10 になります。これは、1970 年 1 月 10 日の前日が 1996 年 12 月 27 日 (ユリウス暦で) になるためです。したがって、1969 年 12 月 28 日から 1970 年 1 月 9 日までは存在しません。

オーバーライド:
クラス Calendar 内の getActualMinimum
パラメータ:
field - カレンダフィールド
戻り値:
この GregorianCalendar の時間値に対する、指定されたカレンダフィールドの最小値
導入されたバージョン:
1.2
関連項目:
getMinimum(int), getMaximum(int), getGreatestMinimum(int), getLeastMaximum(int), getActualMaximum(int)

getActualMaximum

public int getActualMaximum(int field)
このカレンダフィールドが持つことのできる最大値が返されます。このとき、指定された時間値と、getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChange、および getTimeZone の各メソッドの現在値が考慮されます。たとえば、このインスタンスの日付が 2004 年 2 月 1 日だとすると、DAY_OF_MONTH フィールドの実際の最大値は 29 になります。これは、 2004 年がうるう年のため、このインスタンスの日付が 2005 年 2 月 1 日であれば、この値は 28 になります。

オーバーライド:
クラス Calendar 内の getActualMaximum
パラメータ:
field - カレンダフィールド
戻り値:
この GregorianCalendar の時間値に対する、指定されたフィールドの最大値
導入されたバージョン:
1.2
関連項目:
getMinimum(int), getMaximum(int), getGreatestMinimum(int), getLeastMaximum(int), getActualMinimum(int)

clone

public Object clone()
クラス Calendar の記述:
このオブジェクトのコピーを作成して、返します。

オーバーライド:
クラス Calendar 内の clone
戻り値:
このオブジェクトのコピー
関連項目:
Cloneable

getTimeZone

public TimeZone getTimeZone()
クラス Calendar の記述:
タイムゾーンを取得します。

オーバーライド:
クラス Calendar 内の getTimeZone
戻り値:
カレンダに関連したタイムゾーンオブジェクト

setTimeZone

public void setTimeZone(TimeZone zone)
クラス Calendar の記述:
指定されたタイムゾーン値を使用してタイムゾーンを設定します。

オーバーライド:
クラス Calendar 内の setTimeZone
パラメータ:
zone - 指定されたタイムゾーン

computeFields

protected void computeFields()
時刻値 (エポックからのミリ秒単位のオフセット) をカレンダフィールド値に変換します。時間は最初に再計算されません。 時間、フィールドの順に再計算するには、complete メソッドを呼び出します。

定義:
クラス Calendar 内の computeFields
関連項目:
Calendar.complete()

computeTime

protected void computeTime()
カレンダフィールド値を時間値 (エポックからのミリ秒単位のオフセット) に変換します。

定義:
クラス Calendar 内の computeTime
例外:
IllegalArgumentException - 無効なカレンダフィールドがある場合
関連項目:
Calendar.complete(), Calendar.computeFields()

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。