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 です。暦年の最初の週は、その年から少なくとも getMinimalDaysInFirstWeek()
日を含む getFirstDayOfWeek()
で始まるもっとも早い 7 日間です。したがって、最初の週は、getMinimalDaysInFirstWeek()
の値、getFirstDayOfWeek()
の値、および 1 月 1 日の曜日により変化します。ある年の第 1 週から翌年の第 1 週までの週 (その週は含まない) は、必要に応じて 2 から 52 または 53 まで順に番号が付けられます (ユリウス暦からグレゴリオ暦へ移行に含まれる年を除く)。
GregorianCalendar
を構築するとき、getFirstDayOfWeek()
および getMinimalDaysInFirstWeek()
の値は、ロケールに依存したリソースを使用して初期化されます。getFirstDayOfWeek()
が MONDAY
で getMinimalDaysInFirstWeek()
が 4 の場合、週の決定は ISO 8601 に準拠し、これらの値は、標準の設定が優先されるロケールで使用されます。これらの値は、setFirstDayOfWeek()
および setMinimalDaysInFirstWeek()
を呼び出すことによって明示的に設定できます。
暦週の基準年は、WEEK_OF_YEAR
のサイクルと同期がとられます。最初の週と最後の週の間にあるすべての週 (両端の週を含む) の暦週の基準年は、同じ値になります。したがって、暦週の基準年が同じでも、最初の日と最後の日では暦年の値が異なる場合があります。
たとえば、1998 年 1 月 1 日は木曜日です。getFirstDayOfWeek()
が MONDAY
で getMinimalDaysInFirstWeek()
が 4 (ISO 8601 規格に準拠した設定) の場合、1998 年の第 1 週は 1997 年 12 月 29 日に始まり 1998 年 1 月 4 日で終わります。
暦年が 1997 年の最後の 3 日については、暦週の基準年が 1998 になります。
ただし、getFirstDayOfWeek()
が SUNDAY
の場合、1998 年の第 1 週は 1998 年 1 月 4 日に始まり 1998 年 1 月 10 日に終わります。1998 年の最初の 3 日間は 1997 年の第 53 週に入り、それらの日の暦週の基準年は 1997 です。
WEEK_OF_MONTH
フィールドに対して計算される値の範囲は、0 から 6 です。月の第 1 週 (WEEK_OF_MONTH = 1
の日) は、その月で少なくとも getMinimalDaysInFirstWeek()
日間連続するもっとも早い週になり、getFirstDayOfWeek()
の前日までです。年の第 1 週とは異なり、月の第 1 週は 7 日より短いことがあり、getFirstDayOfWeek()
で始まる必要はなく、前の月の日は含まれません。第 1 週より前にあるその月の日については、WEEK_OF_MONTH
の値は 0 です。
たとえば、getFirstDayOfWeek()
が SUNDAY
で getMinimalDaysInFirstWeek()
が 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
|
the first 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 Saving 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
修飾子と型 | フィールドと説明 |
---|---|
static int |
AD
キリスト紀元 (西暦) を示す
ERA フィールドの値であり、CE とも呼ばれます。 |
static int |
BC
キリスト紀元より前の期間 (BC) を示す
ERA フィールドの値であり、BCE とも呼ばれます。 |
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)
このカレンダフィールドが持つことのできる最大値を返します。このとき、指定された時間値と、
getFirstDayOfWeek 、getMinimalDaysInFirstWeek 、getGregorianChange 、および getTimeZone の各メソッドの現在値が考慮されます。 |
int |
getActualMinimum(int field)
このカレンダフィールドが持つことのできる最小値を返します。このとき、指定された時間値と、
getFirstDayOfWeek 、getMinimalDaysInFirstWeek 、getGregorianChange 、および getTimeZone の各メソッドの現在値が考慮されます。 |
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 |
getWeeksInWeekYear()
この
GregorianCalendar で表される暦週の基準年に含まれる週数を返します。 |
int |
getWeekYear()
この
GregorianCalendar で表される暦週の基準年を返します。 |
int |
hashCode()
この
GregorianCalendar オブジェクトのハッシュコードを生成します。 |
boolean |
isLeapYear(int year)
指定された年が、うるう年かどうかを判定します。
|
boolean |
isWeekDateSupported()
この
GregorianCalendar が暦週日付をサポートしていることを示す true を返します。 |
void |
roll(int field, boolean up)
大きいフィールドを変更せずに指定された時間フィールドの 1 つの単位の時間を上または下に加算または減算します。
|
void |
roll(int field, int amount)
大きいフィールドを変更せずに、符号付きの量を指定されたカレンダフィールドに加えます。
|
void |
setGregorianChange(Date date)
GregorianCalendar の切り換え日を設定します。 |
void |
setTimeZone(TimeZone zone)
指定されたタイムゾーン値を使用してタイムゾーンを設定します。
|
void |
setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)
|
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
public static final int BC
ERA
フィールドの値であり、BCE とも呼ばれます。BC
から AD
への移行は、..., 2 BC, 1 BC, 1 AD, 2 AD,... のように行われます。Calendar.ERA
、定数フィールド値public static final int AD
ERA
フィールドの値であり、CE とも呼ばれます。BC
から AD
への移行は、..., 2 BC, 1 BC, 1 AD, 2 AD,... のように行われます。Calendar.ERA
、定数フィールド値public GregorianCalendar()
GregorianCalendar
を構築します。public GregorianCalendar(TimeZone zone)
GregorianCalendar
を構築します。zone
- 指定されたタイムゾーン。public GregorianCalendar(Locale aLocale)
GregorianCalendar
を構築します。aLocale
- 指定されたロケール。public GregorianCalendar(TimeZone zone, Locale aLocale)
GregorianCalendar
を構築します。zone
- 指定されたタイムゾーン。aLocale
- 指定されたロケール。public GregorianCalendar(int year, int month, int dayOfMonth)
GregorianCalendar
を構築します。year
- カレンダ内の YEAR
カレンダフィールドの設定に使用する値。month
- カレンダ内の MONTH
カレンダフィールドの設定に使用する値。Month 値は 0 から始まる (1 月は 0 になる)。dayOfMonth
- カレンダ内の DAY_OF_MONTH
カレンダフィールドの設定に使用する値。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
カレンダフィールドの設定に使用する値。public GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second)
year
- カレンダ内の YEAR
カレンダフィールドの設定に使用する値。month
- カレンダ内の MONTH
カレンダフィールドの設定に使用する値。Month 値は 0 から始まる (1 月は 0 になる)。dayOfMonth
- カレンダ内の DAY_OF_MONTH
カレンダフィールドの設定に使用する値。hourOfDay
- カレンダ内の HOUR_OF_DAY
カレンダフィールドの設定に使用する値。minute
- カレンダ内の MINUTE
カレンダフィールドの設定に使用する値。second
- カレンダ内の SECOND
カレンダフィールドの設定に使用する値。public void setGregorianChange(Date date)
GregorianCalendar
の切り換え日を設定します。これは、ユリウス暦からグレゴリオ暦への切り換えが発生する時点です。デフォルトは 1582 年 10 月 15 日 (グレゴリオ暦) です。これ以前の日付はユリウス暦になります。
純粋なユリウス暦を取得するには、切り換え日を Date(Long.MAX_VALUE)
に設定します。純粋なグレゴリオ歴を取得するには、切り換え日を Date(Long.MIN_VALUE)
に設定します。
date
- グレゴリオ暦への変更日付。public final Date getGregorianChange()
GregorianCalendar
オブジェクトのグレゴリオ暦への切り換え日。public boolean isLeapYear(int year)
true
が返されます。BC 年の数値を指定する場合は、1 - year number
を指定する必要があります。たとえば、BC 4 年は -3 と指定します。year
- 指定する年。true
、そうでない場合は false
。public boolean equals(Object obj)
GregorianCalendar
を指定された Object
と比較します。引数が、このオブジェクトと同じ Calendar
パラメータおよびグレゴリオ暦切り替え日の同じ時刻値 (元期からのミリ秒単位のオフセット) を表す GregorianCalendar
オブジェクトである場合にのみ、結果は true
になります。equals
、クラス: Calendar
obj
- 比較対象のオブジェクト。obj
に等しい場合は true
。それ以外の場合は false
。Calendar.compareTo(Calendar)
public int hashCode()
GregorianCalendar
オブジェクトのハッシュコードを生成します。hashCode
、クラス: Calendar
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public void add(int field, int amount)
Add 規則 1。呼び出しが field
で発生したモジュロオーバーフロー amount
になる前に、呼び出しで field
の値を引いたあとの field
の値です。オーバーフローは、フィールドの値が範囲を超え、その結果、次の大きいフィールドが増分または減分されて、フィールドの値がその範囲に入るよう調整された場合に発生します。
Add規則 2。小さいフィールドが不変式であると予想される場合に、field
が変更されてから最小値または最大値が変更されたために、その前の値と等しくならないと、フィールドの値はその予想される値にできるだけ近くなるように調整されます。小さいフィールドは、小さい時間の単位を表します。HOUR
は DAY_OF_MONTH
よりも小さいフィールドです。不変式ではないと予想される小さいフィールドは、調整されません。カレンダシステムでは、不変式であると予想されるフィールドが判断されます。
add
、クラス: Calendar
field
- カレンダフィールド。amount
- フィールドに追加される日付または時間の量。IllegalArgumentException
- field
が ZONE_OFFSET
、DST_OFFSET
、または不明である場合、またはいずれかのカレンダフィールドが厳密モードで範囲外の値を保持する場合。Calendar.roll(int,int)
, Calendar.set(int,int)
public void roll(int field, boolean up)
例:1999 年 12 月 31 日に当初設定された GregorianCalendar
を考えます。roll(Calendar.MONTH, true)
を呼び出すと、カレンダが 1999 年 1 月 31 日に設定されます。YEAR
フィールドは MONTH
よりも大きいフィールドなので変更されません。
roll
、クラス: Calendar
up
- 指定されたカレンダフィールドの値を上へ動かすのか、下へ動かすのかを指定する。上へ動かす場合は true
、そうでない場合は false
を使用する。field
- 時間フィールド。IllegalArgumentException
- field
が ZONE_OFFSET
、DST_OFFSET
、または不明である場合、またはいずれかのカレンダフィールドが厳密モードで範囲外の値を保持する場合。add(int,int)
, Calendar.set(int,int)
public void roll(int field, int amount)
このメソッドは、量を追加する前に 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 規則 1 とともに使用すると、結果の日付は 6 月 1 日火曜日から 6 月 5 日土曜日までになる必要があります。add rule 2 にしたがって、WEEK_OF_MONTH
を変更するときに不変式 DAY_OF_WEEK
が、日曜日にもっとも近い可能値である火曜日に設定されます (日曜日が週の最初の日の場合)。
roll
、クラス: Calendar
field
- カレンダフィールド。amount
- field
に追加する指定された量。IllegalArgumentException
- field
が ZONE_OFFSET
、DST_OFFSET
、または不明である場合、またはいずれかのカレンダフィールドが厳密モードで範囲外の値を保持する場合。roll(int,boolean)
, add(int,int)
, Calendar.set(int,int)
public int getMinimum(int field)
GregorianCalendar
インスタンスで指定されたカレンダフィールドの最小値を返します。最小値は、getFirstDayOfWeek
、getMinimalDaysInFirstWeek
、getGregorianChange
、および getTimeZone
の各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対して get
メソッドが返す最小値として定義されます。getMinimum
、クラス: Calendar
field
- カレンダフィールド。getMaximum(int)
, getGreatestMinimum(int)
, getLeastMaximum(int)
, getActualMinimum(int)
, getActualMaximum(int)
public int getMaximum(int field)
GregorianCalendar
インスタンスで指定されたカレンダフィールドの最大値を返します。最大値は、getFirstDayOfWeek
、getMinimalDaysInFirstWeek
、getGregorianChange
、および getTimeZone
の各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対して get
メソッドが返す最大値として定義されます。getMaximum
、クラス: Calendar
field
- カレンダフィールド。getMinimum(int)
, getGreatestMinimum(int)
, getLeastMaximum(int)
, getActualMinimum(int)
, getActualMaximum(int)
public int getGreatestMinimum(int field)
GregorianCalendar
インスタンスで指定されたカレンダフィールドの最大最小値を返します。最大最小値は、getFirstDayOfWeek
、getMinimalDaysInFirstWeek
、getGregorianChange
、および getTimeZone
の各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対して getActualMinimum(int)
メソッドが返す最大値として定義されます。getGreatestMinimum
、クラス: Calendar
field
- カレンダフィールド。getMinimum(int)
, getMaximum(int)
, getLeastMaximum(int)
, getActualMinimum(int)
, getActualMaximum(int)
public int getLeastMaximum(int field)
GregorianCalendar
インスタンスで指定されたカレンダフィールドの最小最大値を返します。最小最大値は、getFirstDayOfWeek
、getMinimalDaysInFirstWeek
、getGregorianChange
、および getTimeZone
の各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対して getActualMaximum(int)
メソッドが返す最小値として定義されます。getLeastMaximum
、クラス: Calendar
field
- カレンダフィールドgetMinimum(int)
, getMaximum(int)
, getGreatestMinimum(int)
, getActualMinimum(int)
, getActualMaximum(int)
public int getActualMinimum(int field)
getFirstDayOfWeek
、getMinimalDaysInFirstWeek
、getGregorianChange
、および getTimeZone
の各メソッドの現在値が考慮されます。
たとえば、グレゴリオ暦の変更日が 1970 年 1 月 10 日で、この GregorianCalendar
が 1970 年 1 月 20 日だとすると、DAY_OF_MONTH
フィールドの実際の最小値は 10 になります。これは、1970 年 1 月 10 日の前日が 1996 年 12 月 27 日 (ユリウス暦で) になるためです。したがって、1969 年 12 月 28 日から 1970 年 1 月 9 日までは存在しません。
getActualMinimum
、クラス: Calendar
field
- カレンダフィールドGregorianCalendar
の時間値に対する、指定されたカレンダフィールドの最小値getMinimum(int)
, getMaximum(int)
, getGreatestMinimum(int)
, getLeastMaximum(int)
, getActualMaximum(int)
public int getActualMaximum(int field)
getFirstDayOfWeek
、getMinimalDaysInFirstWeek
、getGregorianChange
、および getTimeZone
の各メソッドの現在値が考慮されます。たとえば、このインスタンスの日付が 2004 年 2 月 1 日だとすると、DAY_OF_MONTH
フィールドの実際の最大値は 29 になります。これは、2004 年がうるう年のため、このインスタンスの日付が 2005 年 2 月 1 日であれば、この値は 28 になります。
このメソッドは、暦週の基準年でなく、YEAR
(暦年) の値に基づいて WEEK_OF_YEAR
の最大値を計算します。この GregorianCalendar
での暦週の基準年において WEEK_OF_YEAR
の最大値を取得するには、getWeeksInWeekYear()
を呼び出します。
getActualMaximum
、クラス: Calendar
field
- カレンダフィールドGregorianCalendar
の時間値に対する、指定されたフィールドの最大値getMinimum(int)
, getMaximum(int)
, getGreatestMinimum(int)
, getLeastMaximum(int)
, getActualMinimum(int)
public TimeZone getTimeZone()
Calendar
getTimeZone
、クラス: Calendar
public void setTimeZone(TimeZone zone)
Calendar
setTimeZone
、クラス: Calendar
zone
- 指定されたタイムゾーン。public final boolean isWeekDateSupported()
GregorianCalendar
が暦週日付をサポートしていることを示す true
を返します。isWeekDateSupported
、クラス: Calendar
true
(常時)getWeekYear()
, setWeekDate(int,int,int)
, getWeeksInWeekYear()
public int getWeekYear()
GregorianCalendar
で表される暦週の基準年を返します。特定の暦週の基準年において、第 1 週から最大の週番号までの間にある各週の各日付では、暦週の基準年の値が同じになり、この値は YEAR
(暦年) の値よりも 1 年前またはあとになることがあります。
このメソッドは、暦週の基準年を計算する前に Calendar.complete()
を呼び出します。
getWeekYear
、クラス: Calendar
GregorianCalendar
で表される暦週の基準年。ERA
値が BC
の場合、年は 0 または負の値で表現され、たとえば BC 1 は 0、BC 2 は -1、BC 3 は -2 などのようになります。IllegalArgumentException
- いずれかのカレンダフィールドが厳密モードで無効な場合。isWeekDateSupported()
, getWeeksInWeekYear()
, Calendar.getFirstDayOfWeek()
, Calendar.getMinimalDaysInFirstWeek()
public void setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)
GregorianCalendar
を日付指示子 - weekYear
、weekOfYear
、および dayOfWeek
で指定された日付に設定します。weekOfYear
は WEEK_OF_YEAR
の番号付けに従います。dayOfWeek
の値は、DAY_OF_WEEK
のいずれか値、つまり SUNDAY
から SATURDAY
の値である必要があります。
数値による曜日の表現は ISO 8601 規格と異なっていること、および weekOfYear
の番号付けは getFirstDayOfWeek()
が MONDAY
で getMinimalDaysInFirstWeek()
が 4 の場合にこの規格に準拠することに注意してください。
set
メソッドと異なり、すべてのカレンダフィールドおよび時間値の時点は返された時点で計算されます。
weekOfYear
が weekYear
内の有効な週番号の範囲外である場合は、weekYear
および weekOfYear
値が非厳密モードで調整されるか、IllegalArgumentException
が厳密モードでスローされます。
setWeekDate
、クラス: Calendar
weekYear
- 暦週の基準年weekOfYear
- weekYear
に基づく週番号dayOfWeek
- 曜日の値。DAY_OF_WEEK
フィールドの定数 (SUNDAY
、...、SATURDAY
) の 1 つ。IllegalArgumentException
- 厳密モードで、指定されたいずれかの日付指定子が無効であるか、いずれかのカレンダフィールドが、指定された日付指定子と矛盾している場合isWeekDateSupported()
, Calendar.getFirstDayOfWeek()
, Calendar.getMinimalDaysInFirstWeek()
public int getWeeksInWeekYear()
GregorianCalendar
で表される暦週の基準年に含まれる週数を返します。
たとえば、この GregorianCalendar
の日付が 2008 年 12 月 31 日の場合、ISO 8601 準拠の設定では、このメソッドは、2008 年 12 月 29 日から 2010 年 1 月 3 日までの期間に相当する 53 を返しますが、getActualMaximum(WEEK_OF_YEAR)
の場合は 2007 年 12 月 31 日から 2008 年 12 月 28 日までの期間に相当する 52 を返します。
getWeeksInWeekYear
、クラス: Calendar
Calendar.WEEK_OF_YEAR
, getWeekYear()
, getActualMaximum(int)
protected void computeFields()
complete
メソッドを呼び出します。computeFields
、クラス: Calendar
Calendar.complete()
protected void computeTime()
computeTime
、クラス: Calendar
IllegalArgumentException
- 無効なカレンダフィールドがある場合。Calendar.complete()
, Calendar.computeFields()
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.