Calendar.FieldDifference(Date, CalendarField) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
<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 && 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.