クラスYearMonth
- すべての実装されたインタフェース:
Serializable,Comparable<YearMonth>,Temporal,TemporalAccessor,TemporalAdjuster
2007-12など)。
YearMonthは、年と月の組合せを表す不変の日付/時間オブジェクトです。 年と月から生成できるすべてのフィールド(四半期など)を取得できます。
このクラスでは、日、時間、またはタイムゾーンを格納したり表現したりしません。 たとえば、「October 2007」という値をYearMonthに格納できます。
ISO-8601暦体系は、世界中の大部分で現在使われている近代の常用暦体系です。 これは、現在のうるう年のルールがすべての時間に適用される、先発グレゴリオ暦体系と同等です。 今日作成されているほとんどのアプリケーションには、ISO-8601のルールが完全に適しています。 ただし、歴史的な日付を使用し、それらが正確であることを必要とするアプリケーションには、ISO-8601の方法が適さないことがわかります。
これはvalue-basedクラスです。プログラマは、equalのインスタンスを交換可能として扱い、同期にインスタンスを使用しないようにする必要があります。そうしないと、予期しない動作が発生する可能性があります。 たとえば、将来のリリースでは、同期が失敗する可能性があります。 比較する場合は、equalsメソッドを使用することをお薦めします。
- 実装要件:
- このクラスは不変でスレッドセーフです。
- 導入されたバージョン:
- 1.8
- 関連項目:
-
メソッドのサマリー
修飾子と型メソッド説明adjustInto(Temporal temporal) 指定された時間的オブジェクトを、年-月を持つように調整します。atDay(int dayOfMonth) この年-月を「月の日」と組み合せてLocalDateを作成します。その月の終わりのLocalDateを返します。intこの年-月を別の年-月と比較します。booleanこの年-月が別の年-月と等しいかどうかをチェックします。format(DateTimeFormatter formatter) 指定されたフォーマッタを使用してこの年-月を書式設定します。static YearMonthfrom(TemporalAccessor temporal) 時間的オブジェクトからYearMonthのインスタンスを取得します。intget(TemporalField field) 指定されたフィールドの値をこの年-月からintとして取得します。longgetLong(TemporalField field) 指定されたフィールドの値をこの年-月からlongとして取得します。getMonth()列挙型Monthを使用して、月フィールドを取得します。int月フィールドを取得します(1-12)。intgetYear()年フィールドを取得します。inthashCode()この年-月のハッシュ・コード。booleanこの年/月が、指定された年/月より後にあるかどうかをチェックします。booleanこの年/月が、指定された年/月より前にあるかどうかをチェックします。booleanISO先発暦体系のルールに従って、年がうるう年であるかどうかをチェックします。booleanisSupported(TemporalField field) 指定されたフィールドがサポートされているかどうかをチェックします。booleanisSupported(TemporalUnit unit) 指定された単位がサポートされているかどうかをチェックします。booleanisValidDay(int dayOfMonth) 「月の日」がこの年-月に対して有効であるかどうかを確認します。int年を考慮に入れて、月の長さを返します。int年の長さを返します。minus(long amountToSubtract, TemporalUnit unit) 指定された量を減算した、この年-月のコピーを返します。minus(TemporalAmount amountToSubtract) 指定された量を減算した、この年-月のコピーを返します。minusMonths(long monthsToSubtract) 指定された月数を減算した、このYearMonthのコピーを返します。minusYears(long yearsToSubtract) 指定された年数を減算した、このYearMonthのコピーを返します。static YearMonthnow()デフォルトのタイムゾーンのシステム・クロックから現在の年-月を取得します。static YearMonth指定されたクロックから現在の年-月を取得します。static YearMonth指定されたタイムゾーンのシステム・クロックから現在の年-月を取得します。static YearMonthof(int year, int month) 年および月からYearMonthのインスタンスを取得します。static YearMonth年および月からYearMonthのインスタンスを取得します。static YearMonthparse(CharSequence text) 2007-12などのテキスト文字列からYearMonthのインスタンスを取得します。static YearMonthparse(CharSequence text, DateTimeFormatter formatter) 特定のフォーマッタを使用して、テキスト文字列からYearMonthのインスタンスを取得します。plus(long amountToAdd, TemporalUnit unit) この年月のコピーに指定された時間を追加したものを返します。plus(TemporalAmount amountToAdd) この年月のコピーに指定された時間を追加したものを返します。plusMonths(long monthsToAdd) 指定された月数を加算した、このYearMonthのコピーを返します。plusYears(long yearsToAdd) 指定された年数を加算した、このYearMonthのコピーを返します。<R> Rquery(TemporalQuery<R> query) 指定された問合せを使用してこの年月を問い合わせます。range(TemporalField field) 指定されたフィールドの有効な値の範囲を取得します。toString()この年と月をStringとして出力します(2007-12など)。longuntil(Temporal endExclusive, TemporalUnit unit) もう一方の年と月までの時間量を指定された単位で計算します。with(TemporalAdjuster adjuster) この年と月の調整済のコピーを返します。with(TemporalField field, long newValue) 指定されたフィールドを新しい値に設定して、この年と月のコピーを返します。withMonth(int month) 月を変更して、このYearMonthのコピーを返します。withYear(int year) 年を変更して、このYearMonthのコピーを返します。
-
メソッドの詳細
-
now
-
now
-
now
指定されたクロックから現在の年-月を取得します。これは、指定されたクロックを問い合わせて現在の年-月を取得します。 このメソッドを使用すると、テストに代替のクロックを使用できます。 代替のクロックは
dependency injectionを使用して導入できます。- パラメータ:
clock- 使用するクロック、null以外- 戻り値:
- 現在の年-月。null以外
-
of
年および月からYearMonthのインスタンスを取得します。- パラメータ:
year- 表す年(MIN_YEARからMAX_YEARまで)month- 表される月。null以外- 戻り値:
- 年-月。null以外
- スロー:
DateTimeException- 年の値が無効である場合
-
of
public static YearMonth of(int year, int month) 年および月からYearMonthのインスタンスを取得します。- パラメータ:
year- 表す年(MIN_YEARからMAX_YEARまで)month- 表される月。1(1月)-12(12月)- 戻り値:
- 年-月。null以外
- スロー:
DateTimeException- どちらかのフィールド値が無効である場合
-
from
public static YearMonth from(TemporalAccessor temporal) 時間的オブジェクトからYearMonthのインスタンスを取得します。これは、指定された時間的オブジェクトに基づいて年-月を取得します。
TemporalAccessorは任意の日付と時間のセットに関する情報を表し、それがこのファクトリでYearMonthのインスタンスに変換されます。この変換では、
YEARおよびMONTH_OF_YEARフィールドを抽出します。 この抽出が許可されるのは、時間的オブジェクトにISOの暦が含まれているか、そのオブジェクトをLocalDateに変換できる場合にかぎられます。このメソッドは関数型インタフェース
TemporalQueryのシグネチャに一致するため、メソッド参照YearMonth::fromを介して、問合せとして使用できます。- パラメータ:
temporal- 変換する一時オブジェクト、null以外- 戻り値:
- 年-月。null以外
- スロー:
DateTimeException-YearMonthに変換できない場合
-
parse
public static YearMonth parse(CharSequence text) 2007-12などのテキスト文字列からYearMonthのインスタンスを取得します。この文字列は有効な年-月を表している必要があります。 フォーマットは
uuuu-MMである必要があります。 0000-9999の範囲外にある年の前には、プラスまたはマイナス記号を付ける必要があります。- パラメータ:
text- 「2007-12」などの解析対象のテキスト。null以外- 戻り値:
- 解析された年-月。null以外
- スロー:
DateTimeParseException- テキストが解析できない場合
-
parse
public static YearMonth parse(CharSequence text, DateTimeFormatter formatter) 特定のフォーマッタを使用して、テキスト文字列からYearMonthのインスタンスを取得します。そのテキストがフォーマッタを使って解析され、年-月が返されます。
- パラメータ:
text- 解析するテキスト。null以外formatter- 使用するフォーマッタ、null以外- 戻り値:
- 解析された年-月。null以外
- スロー:
DateTimeParseException- テキストが解析できない場合
-
isSupported
public boolean isSupported(TemporalField field) 指定されたフィールドがサポートされているかどうかをチェックします。これは、指定されたフィールドをこの年-月に問い合わせることができるかどうかを確認します。 falseの場合、
range、get、およびwith(TemporalField, long)メソッドの呼び出しは、例外をスローします。フィールドが
ChronoFieldの場合、ここに問合せを実装します。 サポートされるフィールドは、次のとおりです。MONTH_OF_YEARPROLEPTIC_MONTHYEAR_OF_ERAYEARERA
ChronoFieldインスタンスはfalseを返します。フィールドが
ChronoFieldでない場合、このメソッドの結果は、thisを引数として渡してTemporalField.isSupportedBy(TemporalAccessor)を呼び出すことによって取得します。 フィールドがサポートされているかどうかはフィールドによって決定します。- 定義:
- インタフェース
TemporalAccessorのisSupported - パラメータ:
field- チェックするフィールド、nullはfalseを返す- 戻り値:
- フィールドがこの年-月でサポートされている場合はtrue、サポートされていない場合はfalse
-
isSupported
public boolean isSupported(TemporalUnit unit) 指定された単位がサポートされているかどうかをチェックします。これは、指定された単位をこの年/月に対して加算または減算できるかどうかをチェックします。 falseの場合、
plus(long, TemporalUnit)およびminusメソッドの呼び出しは、例外をスローします。単位が
ChronoUnitの場合、問合せはここで実装されます。 サポートされる単位は次のとおりです。MONTHSYEARSDECADESCENTURIESMILLENNIAERAS
ChronoUnitインスタンスはfalseを返します。単位が
ChronoUnitでない場合、このメソッドの結果は、thisを引数として渡してTemporalUnit.isSupportedBy(Temporal)を呼び出すことによって取得します。 単位がサポートされているかどうかは単位によって決定します。- 定義:
- インタフェース
TemporalのisSupported - パラメータ:
unit- チェックする単位、nullはfalseを返す- 戻り値:
- 単位を加算/減算できる場合はtrue、できない場合はfalse
-
range
public ValueRange range(TemporalField field) 指定されたフィールドの有効な値の範囲を取得します。範囲オブジェクトはフィールドの有効な最小値と最大値を表します。 この年-月は、返される範囲の精度を高めるために使用されます。 範囲を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
フィールドが
ChronoFieldの場合、ここに問合せを実装します。サポートされるフィールドは適切な範囲のインスタンスを返します。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。フィールドが
ChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.rangeRefinedBy(TemporalAccessor)を呼び出すことにより取得されます。 範囲を取得できるかどうかはフィールドによって決まります。- 定義:
- インタフェース
TemporalAccessorのrange - パラメータ:
field- 範囲を問い合わせるフィールド、null以外- 戻り値:
- フィールドの有効値の範囲。null以外
- スロー:
DateTimeException- フィールドの範囲を取得できない場合UnsupportedTemporalTypeException- フィールドがサポートされていない場合
-
get
public int get(TemporalField field) 指定されたフィールドの値をこの年-月からintとして取得します。これは、指定されたフィールドの値についてこの年/月に問い合せます。 返される値は常にフィールドの値の有効な範囲内になります。 値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
フィールドが
ChronoFieldの場合、ここに問合せを実装します。サポートされているフィールドはこの年-月に基づいて有効な値を返します。ただし、PROLEPTIC_MONTHは長すぎてintに収まらないので、DateTimeExceptionがスローされます。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。フィールドが
ChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.getFrom(TemporalAccessor)を呼び出すことにより取得されます。 値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。- 定義:
- インタフェース
TemporalAccessorのget - パラメータ:
field- 取得するフィールド、null以外- 戻り値:
- フィールドの値
- スロー:
DateTimeException- フィールドの値を取得できない場合、または値がフィールドの有効な値の範囲外の場合UnsupportedTemporalTypeException- フィールドがサポートされていない場合、または値の範囲がintを超えている場合ArithmeticException- 数値のオーバーフローが発生した場合
-
getLong
public long getLong(TemporalField field) 指定されたフィールドの値をこの年-月からlongとして取得します。これは、指定されたフィールドの値についてこの年/月に問い合せます。 値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
フィールドが
ChronoFieldの場合、ここに問合せを実装します。サポートされているフィールドは、この年-月に基づいて有効な値を返します。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。フィールドが
ChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.getFrom(TemporalAccessor)を呼び出すことにより取得されます。 値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。- 定義:
- インタフェース
TemporalAccessorのgetLong - パラメータ:
field- 取得するフィールド、null以外- 戻り値:
- フィールドの値
- スロー:
DateTimeException- フィールドの値を取得できない場合UnsupportedTemporalTypeException- フィールドがサポートされていない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
getYear
public int getYear()年フィールドを取得します。このメソッドは、年を表すプリミティブな
int値を返します。このメソッドで返される年は、
get(YEAR)のように予期的なものです。- 戻り値:
- 年。MIN_YEARからMAX_YEARまで
-
getMonthValue
public int getMonthValue()月フィールドを取得します(1-12)。このメソッドは、月を1-12の
intとして返します。getMonth()を呼び出すことで列挙型Monthが使用される場合は、アプリケーション・コードがより明確になることが多くなります。- 戻り値:
- 月(1-12)
- 関連項目:
-
getMonth
-
isLeapYear
public boolean isLeapYear()ISO先発暦体系のルールに従って、年がうるう年であるかどうかをチェックします。このメソッドは、時系列全体にわたって、うるう年の現在のルールを適用します。 一般に、年は4で割り切れる場合にうるう年です。 ただし、400で割り切れる年を除き、100で割り切れる年はうるう年ではありません。
たとえば、1904年は4で割り切れるうるう年です。1900年は100で割り切れるため、うるう年ではありませんでしたが、2000年は400で割り切れるため、うるう年でした。
計算は先発暦で、遠い将来および遠い過去にも同じルールが適用されます。 これは歴史的には正確ではありませんが、ISO-8601規格には正確です。
- 戻り値:
- 年がうるう年の場合はtrue、それ以外の場合はfalse
-
isValidDay
public boolean isValidDay(int dayOfMonth) 「月の日」がこの年-月に対して有効であるかどうかを確認します。このメソッドは、この年と月、および入力された日から有効な日付が形成されるかどうかを確認します。
- パラメータ:
dayOfMonth- 検証対象の「月の日」(1-31)。無効な値はfalseを返す- 戻り値:
- その日がこの年-月に対して有効である場合はtrue
-
lengthOfMonth
public int lengthOfMonth()年を考慮に入れて、月の長さを返します。これは月の長さを日数で返します。 たとえば、1月の日付は31を返します。
- 戻り値:
- その月の長さ(日数)。28-31
-
lengthOfYear
public int lengthOfYear()年の長さを返します。これは、その年の長さを日数(365または366)で返します。
- 戻り値:
- その年がうるう年の場合は366、それ以外の場合は365
-
with
public YearMonth with(TemporalAdjuster adjuster) この年と月の調整済のコピーを返します。これは、年-月を調整して、この年-月に基づく
YearMonthを返します。 調整は、指定されたアジャスタ戦略オブジェクトを使用して行われます。 どのような調整が行われるかを理解するには、アジャスタのドキュメントを参照してください。単純なアジャスタは、年フィールドなどの1つのフィールドだけを設定するなどです。 より複雑なアジャスタは、年-月をハレー彗星が次回地球を通過する月に設定できます。
このメソッドの結果は、指定されたアジャスタで
thisを引数として渡してTemporalAdjuster.adjustInto(Temporal)メソッドを呼び出すことによって取得されます。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporalのwith - パラメータ:
adjuster- 使用するアジャスタ、null以外- 戻り値:
- 調整が行われた、
これに基づくYearMonth。null以外 - スロー:
DateTimeException- 調整ができない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
with
public YearMonth with(TemporalField field, long newValue) 指定されたフィールドを新しい値に設定して、この年と月のコピーを返します。これは、指定されたフィールドの値を変更して、この年-月に基づく
YearMonthを返します。 これを使用すると、年または月などのサポートされているフィールドを変更できます。 値を設定できない場合は、フィールドがサポートされていないか他の理由のために、例外がスローされます。フィールドが
ChronoFieldの場合は、調整はここで実装されます。 サポートされるフィールドは次のように動作します。MONTH_OF_YEAR- 指定された月を含むYearMonthを返します。 その年は変更されません。PROLEPTIC_MONTH- 指定された先発年を含むYearMonthを返します。 これは、このオブジェクトの年と月を完全に置き換えます。YEAR_OF_ERA- 指定された紀元年を含むYearMonthを返します。その月および紀元は変更されません。YEAR- 指定された年を含むYearMonthを返します。 その月は変更されません。ERA- 指定された紀元を含むYearMonthを返します。 その月および紀元年は変更されません。
いずれの場合も、新しい値がフィールドの値の有効範囲外にあると
DateTimeExceptionがスローされます。他のすべての
ChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。フィールドが
ChronoFieldではない場合、このメソッドの結果は、thisを引数として渡してTemporalField.adjustInto(Temporal, long)を呼び出すことによって取得されます。 この場合、インスタントを調整するかどうかおよびどのように調整するかはフィールドによって決まります。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporalのwith - パラメータ:
field- 結果に設定するフィールド、null以外newValue- 結果のフィールドの新しい値- 戻り値:
- 指定されたフィールドが設定された、
これに基づくYearMonth。null以外 - スロー:
DateTimeException- フィールドを設定できない場合UnsupportedTemporalTypeException- フィールドがサポートされていない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
withYear
public YearMonth withYear(int year) 年を変更して、このYearMonthのコピーを返します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
year- 返される年-月に設定する年(MIN_YEARからMAX_YEARまで)- 戻り値:
- リクエストされた年を含む、この年-月に基づいた
YearMonth。null以外 - スロー:
DateTimeException- 年の値が無効である場合
-
withMonth
public YearMonth withMonth(int month) 月を変更して、このYearMonthのコピーを返します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
month- 返される年-月に設定する月。1(1月)-12(12月)- 戻り値:
- リクエストされた月を含む、この年-月に基づいた
YearMonth。null以外 - スロー:
DateTimeException- 月の値が無効である場合
-
plus
public YearMonth plus(TemporalAmount amountToAdd) この年月のコピーに指定された時間を追加したものを返します。これは、指定された量を加算して、この年-月に基づく
YearMonthを返します。 この量は通常Periodですが、TemporalAmountインタフェースを実装する他のどの型であってもかまいません。計算は、
TemporalAmount.addTo(Temporal)を呼び出すことによって量オブジェクトに委譲されます。 量実装は加算を任意の方法で自由に実装できますが、通常はplus(long, TemporalUnit)にコールバックします。 正常に加算できるかどうかを判断するには、量実装のドキュメントを参照してください。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporalのplus - パラメータ:
amountToAdd- 加算する量、nullでない- 戻り値:
- 加算が行われた、この年-月に基づく
YearMonth。null以外 - スロー:
DateTimeException- 加算できない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
plus
public YearMonth plus(long amountToAdd, TemporalUnit unit) この年月のコピーに指定された時間を追加したものを返します。これは、その単位での量を加算して、この年-月に基づく
YearMonthを返します。 量を加算できない場合、単位がサポートされていないか他の理由のために、例外がスローされます。フィールドが
ChronoUnitの場合は、加算はここで実装されます。 サポートされるフィールドは次のように動作します。MONTHS- 指定された月数を加算してYearMonthを返します。 これはplusMonths(long)と同等です。YEARS- 指定された年数を加算してYearMonthを返します。 これはplusYears(long)と同等です。DECADES- 指定された数の10年を加算してYearMonthを返します。 これは、量を10倍にしてplusYears(long)を呼び出すことと同等です。CENTURIES- 指定された数の100年を加算してYearMonthを返します。 これは、量を100倍にしてplusYears(long)を呼び出すことと同等です。MILLENNIA- 指定された数の1000年を加算してYearMonthを返します。 これは、量を1,000倍にしてplusYears(long)を呼び出すことと同等です。ERAS- 指定された紀元数を加算してYearMonthを返します。 サポートされている紀元は2つのみなので、この量は1、0、または-1にする必要があります。 量が0以外である場合は、紀元年が変わらないように、その年が変更されます。
他のすべての
ChronoUnitインスタンスはUnsupportedTemporalTypeExceptionをスローします。フィールドが
ChronoUnitでない場合、このメソッドの結果は、thisを引数として渡してTemporalUnit.addTo(Temporal, long)を呼び出すことによって取得されます。 この場合、加算を実行するかどうかおよびどのように実行するかは単位によって決まります。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporalのplus - パラメータ:
amountToAdd- 結果に加算する単位の量、負も可unit- 加算する量の単位、nullでない- 戻り値:
- 指定された量が加算された、この年-月に基づく
YearMonth。null以外 - スロー:
DateTimeException- 加算できない場合UnsupportedTemporalTypeException- 単位がサポートされていない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
plusYears
public YearMonth plusYears(long yearsToAdd) 指定された年数を加算した、このYearMonthのコピーを返します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
yearsToAdd- 加算する年数。負の値の場合もある- 戻り値:
- その年数が加算された、この年-月に基づく
YearMonth。null以外 - スロー:
DateTimeException- 結果がサポートされている範囲を超える場合
-
plusMonths
public YearMonth plusMonths(long monthsToAdd) 指定された月数を加算した、このYearMonthのコピーを返します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
monthsToAdd- 加算する月数。負の値の場合もある- 戻り値:
- その月数が加算された、この年-月に基づく
YearMonth。null以外 - スロー:
DateTimeException- 結果がサポートされている範囲を超える場合
-
minus
public YearMonth minus(TemporalAmount amountToSubtract) 指定された量を減算した、この年-月のコピーを返します。これは、指定された量を減算して、この年-月に基づく
YearMonthを返します。 この量は通常Periodですが、TemporalAmountインタフェースを実装する他のどの型であってもかまいません。計算は、
TemporalAmount.subtractFrom(Temporal)を呼び出すことによって量オブジェクトに委譲されます。 量実装は減算を任意の方法で自由に実装できますが、通常はminus(long, TemporalUnit)にコールバックします。 正常に減算できるかどうかを判断するには、量実装のドキュメントを参照してください。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporalのminus - パラメータ:
amountToSubtract- 減算する量、nullでない- 戻り値:
- 減算が行われた、この年-月に基づく
YearMonth。null以外 - スロー:
DateTimeException- 減算ができない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
minus
public YearMonth minus(long amountToSubtract, TemporalUnit unit) 指定された量を減算した、この年-月のコピーを返します。これは、その単位での量を減算して、この年-月に基づく
YearMonthを返します。 量を減算できない場合、単位がサポートされていないか他の理由のために、例外がスローされます。このメソッドは、量を符号反転した
plus(long, TemporalUnit)と同等です。 加算および減算がどのように行われるかについての詳しい説明は、そのメソッドを参照してください。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporalのminus - パラメータ:
amountToSubtract- 結果から減算する単位の量、負も可unit- 減算する量の単位、nullでない- 戻り値:
- 指定された量が減算された、この年-月に基づく
YearMonth。null以外 - スロー:
DateTimeException- 減算ができない場合UnsupportedTemporalTypeException- 単位がサポートされていない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
minusYears
public YearMonth minusYears(long yearsToSubtract) 指定された年数を減算した、このYearMonthのコピーを返します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
yearsToSubtract- 減算する年数。負の値の場合もある- 戻り値:
- その年数が減算された、この年-月に基づく
YearMonth。null以外 - スロー:
DateTimeException- 結果がサポートされている範囲を超える場合
-
minusMonths
public YearMonth minusMonths(long monthsToSubtract) 指定された月数を減算した、このYearMonthのコピーを返します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
monthsToSubtract- 減算する月数。負の値の場合もある- 戻り値:
- その月数が減算された、この年-月に基づく
YearMonth。null以外 - スロー:
DateTimeException- 結果がサポートされている範囲を超える場合
-
query
public <R> R query(TemporalQuery<R> query) 指定された問合せを使用してこの年月を問い合わせます。これは、指定された問合せ方針オブジェクトを使用してこの年-月を問い合わせます。
TemporalQueryオブジェクトは結果を取得するために使用するロジックを定義します。 このメソッドの結果を理解するには、問合せのドキュメントをお読みください。このメソッドの結果は、
thisを引数として渡して、指定した問合せでTemporalQuery.queryFrom(TemporalAccessor)メソッドを呼び出すことによって取得します。- 定義:
- インタフェース
TemporalAccessorのquery - 型パラメータ:
R- 結果のタイプ- パラメータ:
query- 呼び出す問合せ、null以外- 戻り値:
- 問合せ結果、nullが返されることがある(問合せによって定義される)
- スロー:
DateTimeException- 問い合わせできない場合(問合せによって定義される)ArithmeticException- 数値のオーバーフローが発生した場合(問合せによって定義される)
-
adjustInto
指定された時間的オブジェクトを、年-月を持つように調整します。これは、年と月をこれと同じになるように変更して、入力と同じ識別可能な型の時間的オブジェクトを返します。
この調整は、
ChronoField.PROLEPTIC_MONTHをフィールドとして渡してTemporal.with(TemporalField, long)を使用することと同等です。 指定された時間的オブジェクトがISOの暦体系を使用しない場合は、DateTimeExceptionがスローされます。ほとんどのケースで、
Temporal.with(TemporalAdjuster)を使用して、呼び出しパターンを逆にすると明確になります。// these two lines are equivalent, but the second approach is recommended temporal = thisYearMonth.adjustInto(temporal); temporal = temporal.with(thisYearMonth);
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
TemporalAdjusterのadjustInto - パラメータ:
temporal- 調整するターゲット・オブジェクト、null以外- 戻り値:
- 調整されるオブジェクト、null以外
- スロー:
DateTimeException- 調整を実行できない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
until
public long until(Temporal endExclusive, TemporalUnit unit) もう一方の年と月までの時間量を指定された単位で計算します。これは、1つの
TemporalUnitを単位として、2つのYearMonthオブジェクト間の時間量を計算します。 始点と終点は、これと指定された年-月です。 終了が開始より前である場合、結果は負になります。 このメソッドに渡されたTemporalは、from(TemporalAccessor)を使用してYearMonthに変換されます。 たとえば、2つの年/月の間の年単位の期間は、startYearMonth.until(endYearMonth, YEARS)を使用して計算できます。この計算では、2つの年-月の間の完全な単位の数を表す整数を返します。 たとえば、2012-06から2032-05までの10年単位の期間は、20年には1か月足りないため、10年のみとなります。
このメソッドを使用する等価な方法が2つあります。 1つ目はこのメソッドを呼び出すことです。 2つ目は
TemporalUnit.between(Temporal, Temporal)を使用することです。// these two lines are equivalent amount = start.until(end, MONTHS); amount = MONTHS.between(start, end);
この選択は、コードが読みやすくなるのはどちらかに基づいて行ってください。計算は
ChronoUnitのこのメソッドに実装します。 サポートされている単位は、MONTHS、YEARS、DECADES、CENTURIES、MILLENNIA、およびERASです。 その他のChronoUnit値は例外をスローします。単位が
ChronoUnitでない場合、このメソッドの結果は、thisを1つ目の引数として、変換される入力temporal (一時)を2つ目の引数として渡してTemporalUnit.between(Temporal, Temporal)を呼び出すことによって取得します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporalのuntil - パラメータ:
endExclusive-YearMonthに変換される終了日付(これを含まない)。null以外unit- 量を測定する単位、null以外- 戻り値:
- この年-月から終了の年-月までの時間量
- スロー:
DateTimeException- その量を計算できないか、終了時間をYearMonthに変換できない場合UnsupportedTemporalTypeException- 単位がサポートされていない場合ArithmeticException- 数値のオーバーフローが発生した場合
-
format
public String format(DateTimeFormatter formatter) 指定されたフォーマッタを使用してこの年-月を書式設定します。この年-月がフォーマッタに渡されて、文字列が生成されます。
- パラメータ:
formatter- 使用するフォーマッタ、null以外- 戻り値:
- 書式設定された年-月の文字列。null以外
- スロー:
DateTimeException- 出力時にエラーが発生した場合
-
atDay
public LocalDate atDay(int dayOfMonth) この年-月を「月の日」と組み合せてLocalDateを作成します。これは、この年-月および指定された「月の日」から形成された
LocalDateを返します。「月の日」の値はその年-月に対して有効である必要があります。
このメソッドは、日付を生成するためのチェーンの一部として使用できます。
LocalDate date = year.atMonth(month).atDay(day);
- パラメータ:
dayOfMonth- 使用する「月の日」(1-31)- 戻り値:
- この年-月および指定された日から形成された日付。null以外
- スロー:
DateTimeException- その日がその年-月に対して無効である場合- 関連項目:
-
atEndOfMonth
public LocalDate atEndOfMonth()その月の終わりのLocalDateを返します。これは、この年-月に基づいて
LocalDateを返します。 「月の日」は、うるう年を考慮してその月の最後の有効な日に設定されます。このメソッドは、日付を生成するためのチェーンの一部として使用できます。
LocalDate date = year.atMonth(month).atEndOfMonth();
- 戻り値:
- この年-月の最後の有効な日。null以外
-
compareTo
public int compareTo(YearMonth other) この年-月を別の年-月と比較します。この比較は、まず年の値に基づいて行われ、次に月の値に基づいて行われます。
Comparableに定義されているとおりに、「equalsと一致」しています。- 定義:
compareTo、インタフェースComparable<YearMonth>- パラメータ:
other- 比較対象のもう一方の年-月。null以外- 戻り値:
- コンパレータ値。
otherより前の場合はゼロ未満、等しい場合はゼロ、otherより後の場合はゼロより大きい値 - 関連項目:
-
isAfter
public boolean isAfter(YearMonth other) この年/月が、指定された年/月より後にあるかどうかをチェックします。- パラメータ:
other- 比較対象のもう一方の年-月。null以外- 戻り値:
- これが指定された年-月より後にある場合はtrue
-
isBefore
public boolean isBefore(YearMonth other) この年/月が、指定された年/月より前にあるかどうかをチェックします。- パラメータ:
other- 比較対象のもう一方の年-月。null以外- 戻り値:
- この時点が指定された年-月より前にある場合はtrue
-
equals
-
hashCode
-
toString
-