Calendar.FieldDifference(Date, CalendarField) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
<strong>[icu]</strong> 指定した時刻と、このカレンダー オブジェクトが設定された時刻の差を返します。
[Android.Runtime.Register("fieldDifference", "(Ljava/util/Date;I)I", "GetFieldDifference_Ljava_util_Date_IHandler", ApiSince=24)]
public virtual int FieldDifference(Java.Util.Date? when, Android.Icu.Util.CalendarField field);
[<Android.Runtime.Register("fieldDifference", "(Ljava/util/Date;I)I", "GetFieldDifference_Ljava_util_Date_IHandler", ApiSince=24)>]
abstract member FieldDifference : Java.Util.Date * Android.Icu.Util.CalendarField -> int
override this.FieldDifference : Java.Util.Date * Android.Icu.Util.CalendarField -> int
パラメーター
- when
- Date
このカレンダーの時刻を比較する日付
- field
- CalendarField
結果を計算するフィールド
返品
fieldの観点から、このカレンダーの時刻とwhenの間の正または負の差。
- 属性
注釈
<strong>[icu]</strong> 指定した時刻と、このカレンダー オブジェクトが設定された時刻の差を返します。 このカレンダーが指定した時刻 <em>before</em> 設定されている場合、戻り値は正になります。 このカレンダーが <em>after</em> 指定した時刻に設定されている場合、戻り値は負の値になります。
field パラメーターは、戻り値の単位を指定します。 たとえば、 fieldDifference(when, Calendar.MONTH) が 3 を返す場合、このカレンダーは whenの 3 か月前に設定され、場合によっては 1 か月未満の追加時間に設定されます。
この呼び出しの副作用として、このカレンダーは、指定された金額で when に向かって進まれます。 つまり、このメソッドを呼び出すと、 add(field, n)呼び出しの副作用が生じ、戻り値が n されます。
使用法: このメソッドを使用するには、最初に最大の対象フィールドで呼び出し、次に徐々に小さいフィールドで呼び出します。 例えば次が挙げられます。
int y = cal.fieldDifference(when, Calendar.YEAR);
int m = cal.fieldDifference(when, Calendar.MONTH);
int d = cal.fieldDifference(when, Calendar.DATE);
は、年、月、日の cal と when の差を計算します。
注: fieldDifference() は <em>asymmetrical</em>です。 つまり、次のコードでは次のようになります。
cal.setTime(date1);
int m1 = cal.fieldDifference(date2, Calendar.MONTH);
int d1 = cal.fieldDifference(date2, Calendar.DATE);
cal.setTime(date2);
int m2 = cal.fieldDifference(date1, Calendar.MONTH);
int d2 = cal.fieldDifference(date1, Calendar.DATE);
1 つは、その m1 == -m2 && d1 == -d2を期待する可能性があります。 ただし、基になるカレンダー システムの不規則性 (グレゴリオ暦の 1 か月あたりの日数が異なるなど) のため、これは一般的には当てはまるわけではありません。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。