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, toStringpublic 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、クラス: Calendarobj - 比較対象のオブジェクト。obj に等しい場合は true。それ以外の場合は false。Calendar.compareTo(Calendar)public int hashCode()
GregorianCalendar オブジェクトのハッシュコードを生成します。hashCode、クラス: CalendarObject.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、クラス: Calendarfield - カレンダフィールド。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、クラス: Calendarup - 指定されたカレンダフィールドの値を上へ動かすのか、下へ動かすのかを指定する。上へ動かす場合は 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、クラス: Calendarfield - カレンダフィールド。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、クラス: Calendarfield - カレンダフィールド。getMaximum(int), getGreatestMinimum(int), getLeastMaximum(int), getActualMinimum(int), getActualMaximum(int)public int getMaximum(int field)
GregorianCalendar インスタンスで指定されたカレンダフィールドの最大値を返します。最大値は、getFirstDayOfWeek、getMinimalDaysInFirstWeek、getGregorianChange、および getTimeZone の各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対して get メソッドが返す最大値として定義されます。getMaximum、クラス: Calendarfield - カレンダフィールド。getMinimum(int), getGreatestMinimum(int), getLeastMaximum(int), getActualMinimum(int), getActualMaximum(int)public int getGreatestMinimum(int field)
GregorianCalendar インスタンスで指定されたカレンダフィールドの最大最小値を返します。最大最小値は、getFirstDayOfWeek、getMinimalDaysInFirstWeek、getGregorianChange、および getTimeZone の各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対して getActualMinimum(int) メソッドが返す最大値として定義されます。getGreatestMinimum、クラス: Calendarfield - カレンダフィールド。getMinimum(int), getMaximum(int), getLeastMaximum(int), getActualMinimum(int), getActualMaximum(int)public int getLeastMaximum(int field)
GregorianCalendar インスタンスで指定されたカレンダフィールドの最小最大値を返します。最小最大値は、getFirstDayOfWeek、getMinimalDaysInFirstWeek、getGregorianChange、および getTimeZone の各メソッドのそれぞれの現在値を考慮したうえで、すべての可能な時間値に対して getActualMaximum(int) メソッドが返す最小値として定義されます。getLeastMaximum、クラス: Calendarfield - カレンダフィールド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、クラス: Calendarfield - カレンダフィールド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、クラス: Calendarfield - カレンダフィールドGregorianCalendar の時間値に対する、指定されたフィールドの最大値getMinimum(int), getMaximum(int), getGreatestMinimum(int), getLeastMaximum(int), getActualMinimum(int)public TimeZone getTimeZone()
CalendargetTimeZone、クラス: Calendarpublic void setTimeZone(TimeZone zone)
CalendarsetTimeZone、クラス: Calendarzone - 指定されたタイムゾーン。public final boolean isWeekDateSupported()
GregorianCalendar が暦週日付をサポートしていることを示す true を返します。isWeekDateSupported、クラス: Calendartrue (常時)getWeekYear(), setWeekDate(int,int,int), getWeeksInWeekYear()public int getWeekYear()
GregorianCalendar で表される暦週の基準年を返します。特定の暦週の基準年において、第 1 週から最大の週番号までの間にある各週の各日付では、暦週の基準年の値が同じになり、この値は YEAR (暦年) の値よりも 1 年前またはあとになることがあります。
このメソッドは、暦週の基準年を計算する前に Calendar.complete() を呼び出します。
getWeekYear、クラス: CalendarGregorianCalendar で表される暦週の基準年。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、クラス: CalendarweekYear - 暦週の基準年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、クラス: CalendarCalendar.WEEK_OF_YEAR, getWeekYear(), getActualMaximum(int)protected void computeFields()
complete メソッドを呼び出します。computeFields、クラス: CalendarCalendar.complete()protected void computeTime()
computeTime、クラス: CalendarIllegalArgumentException - 無効なカレンダフィールドがある場合。Calendar.complete(), Calendar.computeFields() バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.