Idioma

Calendar.FieldDifference(Date, CalendarField) Método

Definição

<strong>[icu]</strong> Retorna a diferença entre o tempo determinado e a hora em que esse objeto de calendário está definido.

[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

a data para comparar a hora deste calendário com

field
CalendarField

o campo no qual calcular o resultado

Retornos

a diferença, positiva ou negativa, entre a hora deste calendário e when, em termos de field.

Atributos

Comentários

<strong>[icu]</strong> Retorna a diferença entre o tempo determinado e a hora em que esse objeto de calendário está definido. Se esse calendário for definido <>antes</em> um determinado momento, o valor retornado será positivo. Se esse calendário for definido <>após</em> o tempo determinado, o valor retornado será negativo. O field parâmetro especifica as unidades do valor retornado. Por exemplo, se fieldDifference(when, Calendar.MONTH) retornar 3, esse calendário será definido como 3 meses antes whene, possivelmente, algum tempo adicional menor que um mês.

Como efeito colateral dessa chamada, esse calendário é avançado para when o valor determinado. Ou seja, chamar esse método tem o efeito colateral da chamada add(field, n), onde n está o valor retornado.

Uso: para usar esse método, chame-o primeiro com o maior campo de interesse e, em seguida, com campos progressivamente menores. Por exemplo:

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

calcula a diferença entre cal e when em anos, meses e dias.

Observação: fieldDifference() é <em>assimétrica</em>. Ou seja, no seguinte código:

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

pode-se esperar que m1 == -m2 &amp;&amp; d1 == -d2. No entanto, esse não é geralmente o caso, devido a irregularidades no sistema de calendário subjacente (por exemplo, o calendário gregoriano tem um número variado de dias por mês).

Java documentação para android.icu.util.Calendar.fieldDifference(java.util.Date, int).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a