Lingua

Calendar.Roll Metodo

Definizione

Overload

Nome Descrizione
Roll(CalendarField, Boolean)

Esegue il roll(up/down) di una singola unità di tempo nel campo specificato.

Roll(CalendarField, Int32)

Esegue il rolling (su/giù) di un periodo di tempo specificato nel campo specificato.

Roll(CalendarField, Boolean)

Esegue il roll(up/down) di una singola unità di tempo nel campo specificato.

[Android.Runtime.Register("roll", "(IZ)V", "", ApiSince=24)]
public void Roll(Android.Icu.Util.CalendarField field, bool up);
[<Android.Runtime.Register("roll", "(IZ)V", "", ApiSince=24)>]
member this.Roll : Android.Icu.Util.CalendarField * bool -> unit

Parametri

field
CalendarField

campo del calendario da rotolare.

up
Boolean

indica se il valore del campo dell'ora specificato deve essere eseguito il rollup o il roll down. Usare true se si esegue il roll up, false in caso contrario.

Attributi

Commenti

Esegue il roll(up/down) di una singola unità di tempo nel campo specificato. Se il campo viene eseguito oltre il valore massimo consentito, verrà eseguito il ritorno a capo al valore minimo e continuerà a essere in sequenza. Ad esempio, per aggiornare la data corrente di un giorno, è possibile chiamare:

roll({@link #DATE}, true)

Quando si esegue il rollback del #YEAR campo, il valore dell'anno nell'intervallo compreso tra 1 e il valore restituito chiamando #getMaximum getMaximum(#YEAR).

Quando si esegue il rollback in determinati campi, i valori di altri campi possono essere in conflitto e devono essere modificati. Ad esempio, quando si rotola il campo per la MONTH data gregoriana 1/31/96 verso l'alto, il DAY_OF_MONTH campo deve essere regolato in modo che il risultato sia 2/29/96 anziché il 2/31/96 non valido.

Il roll-up significa sempre rollforward nel tempo (a meno che non venga raggiunto il limite del campo, nel qual caso può aggiungere o eseguire il wrapping), quindi per il calendario gregoriano, a partire da 100 BC e rotolando l'anno in su si traduce in 99 BC. Quando le ere hanno un inizio e una fine definiti (come nel calendario cinese, o come nella maggior parte delle epoche nel calendario giapponese), l'anno che ha superato uno dei limiti dell'era causerà l'incapsulamento dell'anno. Quando le ere hanno un limite solo a una fine, il tentativo di rollfornire l'anno oltre tale limite comporterà l'aggiunta dell'anno a tale limite. Si noti che per la maggior parte dei calendari in cui l'era 0 anni si spostano avanti nel tempo (ad esempio buddista, ebraico o islamico), è possibile aggiungere o rotolare per produrre anni negativi per era 0 (che è l'unico modo per rappresentare gli anni prima del periodo del calendario in tali calendari).

<b Nota:</b>> La chiamata roll(field, true) di N volte è <em>not</em> necessariamente equivalente alla chiamata roll(field, N)di . Si supponga, ad esempio, di iniziare con la data gregoriana data 31 gennaio 1995. Se si chiama roll(Calendar.MONTH, 2), il risultato sarà il 31 marzo 1995. Ma se si chiama roll(Calendar.MONTH, true), il risultato sarà il 28 febbraio 1995. Chiamandolo un'altra volta, il 28 marzo 1995, che di solito non è il risultato desiderato.

<b Nota:</b>> È consigliabile usare roll sempre e add invece di tentare di eseguire operazioni aritmetiche direttamente nei campi di un oggetto Calendar. È possibile che Calendar le sottoclassi abbiano campi con comportamento non lineare, ad esempio mesi o giorni mancanti durante gli anni non bisestili. I metodi e roll delle sottoclassi add prenderanno in considerazione questo problema, mentre le semplici manipolazioni aritmetiche possono dare risultati non validi.

per android.icu.util.Calendar.roll(int, boolean).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a

Roll(CalendarField, Int32)

Esegue il rolling (su/giù) di un periodo di tempo specificato nel campo specificato.

[Android.Runtime.Register("roll", "(II)V", "GetRoll_IIHandler", ApiSince=24)]
public virtual void Roll(Android.Icu.Util.CalendarField field, int amount);
[<Android.Runtime.Register("roll", "(II)V", "GetRoll_IIHandler", ApiSince=24)>]
abstract member Roll : Android.Icu.Util.CalendarField * int -> unit
override this.Roll : Android.Icu.Util.CalendarField * int -> unit

Parametri

field
CalendarField

campo del calendario da rotolare.

amount
Int32

quantità in base alla quale deve essere eseguito il rollback del campo.

Attributi

Commenti

Esegue il rolling (su/giù) di un periodo di tempo specificato nel campo specificato. Ad esempio, per eseguire il rollup della data corrente di tre giorni, è possibile chiamare roll(Calendar.DATE, 3). Se il campo viene eseguito oltre il valore massimo consentito, verrà eseguito il ritorno a capo al valore minimo e continuerà a essere in sequenza. Ad esempio, la chiamata roll(Calendar.DATE, 10) a un calendario gregoriano impostata su 4/25/96 comporterà la data 4/5/96.

Quando si esegue il rollback in determinati campi, i valori di altri campi possono essere in conflitto e devono essere modificati. Ad esempio, quando si rotola il #MONTH MONTH campo per la data gregoriana 1/31/96 per +1, il #DAY_OF_MONTH DAY_OF_MONTH campo deve essere regolato in modo che il risultato sia 2/29/96 anziché il 31/31/96 non valido.

Se si esegue il rollforward in base a un valore positivo, il tempo in avanti (a meno che non venga raggiunto il limite del campo, nel qual caso può aggiungere o incapsulare), quindi per il calendario gregoriano, a partire da 100 BC e rotolando l'anno di + 1 si traduce in 99 BC. Quando le ere hanno un inizio e una fine definiti (come nel calendario cinese, o come nella maggior parte delle epoche nel calendario giapponese), l'anno che ha superato uno dei limiti dell'era causerà l'incapsulamento dell'anno. Quando le ere hanno un limite solo a una fine, il tentativo di rollfornire l'anno oltre tale limite comporterà l'aggiunta dell'anno a tale limite. Si noti che per la maggior parte dei calendari in cui l'era 0 anni si spostano avanti nel tempo (ad esempio buddista, ebraico o islamico), è possibile aggiungere o rotolare per produrre anni negativi per era 0 (che è l'unico modo per rappresentare gli anni prima del periodo del calendario in tali calendari).

<strong>[icu] Nota:</strong> l'implementazione dell'ICU di questo metodo è in grado di eseguire il rollback di tutti i campi ad eccezione #ERA ERAdi , #DST_OFFSET DST_OFFSETe #ZONE_OFFSET ZONE_OFFSET. Le sottoclassi possono, naturalmente, aggiungere il supporto per altri campi nelle relative sostituzioni di roll.

<b Nota:</b>> È consigliabile usare roll sempre e add invece di tentare di eseguire operazioni aritmetiche direttamente nei campi di un oggetto Calendar. È possibile che Calendar le sottoclassi abbiano campi con comportamento non lineare, ad esempio mesi o giorni mancanti durante gli anni non bisestili. I metodi e roll delle sottoclassi add prenderanno in considerazione questo problema, mentre le semplici manipolazioni aritmetiche possono dare risultati non validi.

<b>Subclassing:</b><br> Questa implementazione di roll presuppone che il comportamento del campo sia continuo tra il valore minimo e il massimo, che vengono trovati chiamando #getActualMinimum getActualMinimum e #getActualMaximum getActualMaximum. Per la maggior parte di questi campi, semplici operazioni di addizione, sottrazione e modulo sono sufficienti per eseguire il roll. Per i campi correlati alla settimana, sono necessari anche i risultati di #getFirstDayOfWeek getFirstDayOfWeek e #getMinimalDaysInFirstWeek getMinimalDaysInFirstWeek . Le sottoclassi possono eseguire l'override di questi due metodi se i relativi valori differiscono dai valori predefiniti.

Le sottoclassi con campi per cui si presuppone che la continuità venga interrotta deve eseguire l'override roll per gestire tali campi in modo speciale. Ad esempio, nel calendario ebraico il mese "Adar I" si verifica solo negli anni bisestili; negli altri anni il calendario passa da Shevat (mese 4) ad Adar (mese 6). Il HebrewCalendar#roll HebrewCalendar.roll metodo tiene conto di questo, in modo che il mese di Shevat per uno restituisca il risultato corretto (Adar) in un anno non bisestile.

per android.icu.util.Calendar.roll(int, int).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a