Lenguaje

Calendar.FieldDifference(Date, CalendarField) Método

Definición

<strong>[icu]</strong> Devuelve la diferencia entre el tiempo dado y la hora en que se establece este objeto de calendario.

[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

Parámetros

when
Date

la fecha a la que se va a comparar la hora de este calendario

field
CalendarField

el campo en el que se va a calcular el resultado

Devoluciones

la diferencia, ya sea positiva o negativa, entre la hora de este calendario y when, en términos de field.

Atributos

Comentarios

<strong>[icu]</strong> Devuelve la diferencia entre el tiempo dado y la hora en que se establece este objeto de calendario. Si este calendario se establece <en em>antes</em> , el valor devuelto será positivo. Si este calendario se establece <em>después</em> el tiempo especificado, el valor devuelto será negativo. El field parámetro especifica las unidades del valor devuelto. Por ejemplo, si fieldDifference(when, Calendar.MONTH) devuelve 3, este calendario se establece en 3 meses antes whende y, posiblemente, un tiempo adicional inferior a un mes.

Como efecto secundario de esta llamada, este calendario avanza hacia when por la cantidad especificada. Es decir, llamar a este método tiene el efecto secundario de llamar a add(field, n), donde n es el valor devuelto.

Uso: para usar este método, llámelo primero con el campo de interés más grande y, a continuación, con campos progresivamente más pequeños. Por ejemplo:

int y = cal.fieldDifference(when, Calendar.YEAR);
            int m = cal.fieldDifference(when, Calendar.MONTH);
            int d = cal.fieldDifference(when, Calendar.DATE);

calcula la diferencia entre cal y when en años, meses y días.

Nota: fieldDifference() es <em>asimétrico</em>. Es decir, en el código siguiente:

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);

uno podría esperar que m1 == -m2 &amp;&amp; d1 == -d2. Sin embargo, esto no suele ser el caso, debido a irregularidades en el sistema de calendario subyacente (por ejemplo, el calendario gregoriano tiene un número variable de días al mes).

Java documentación para android.icu.util.Calendar.fieldDifference(java.util.Date, int).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a