Calendar.FieldDifference(Date, CalendarField) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
<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 && 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.