Calendar Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
La Calendar
classe è una classe astratta che fornisce metodi per la conversione tra un istante specifico nel tempo e un set di#fields calendar fields
, ad esempio YEAR
, MONTH
DAY_OF_MONTH
, HOUR
, e così via, e per modificare i campi del calendario, ad esempio ottenere la data della settimana successiva.
[Android.Runtime.Register("java/util/Calendar", DoNotGenerateAcw=true)]
public abstract class Calendar : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Lang.ICloneable, Java.Lang.IComparable
[<Android.Runtime.Register("java/util/Calendar", DoNotGenerateAcw=true)>]
type Calendar = class
inherit Object
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface ICloneable
interface IComparable
- Ereditarietà
- Derivato
- Attributi
- Implementazioni
Commenti
La Calendar
classe è una classe astratta che fornisce metodi per la conversione tra un istante specifico in tempo e un set di#fields calendar fields
, ad esempio , HOUR
MONTH
DAY_OF_MONTH
, e così via, e per modificare i campi del calendario, ad esempio YEAR
ottenere la data della prossima settimana. Un'istantanea in tempo può essere rappresentata da un valore millisecondo che è un offset da "Epoch"><em Epoch</em>>, 1 gennaio 1970 00:00:00:00.000 GMT (Gregoriano).
La classe fornisce anche campi e metodi aggiuntivi per implementare un sistema di calendario concreto all'esterno del pacchetto. Tali campi e metodi sono definiti come protected
.
Analogamente ad altre classi sensibili alle impostazioni locali, fornisce un metodo di classe, Calendar
getInstance
, per ottenere un oggetto generalmente utile di questo tipo. Calendar
Il metodo di 's restituisce un Calendar
oggetto i cui campi del getInstance
calendario sono stati inizializzati con la data e l'ora correnti: <blockquote>
Calendar rightNow = Calendar.getInstance();
</Blockquote>
Un Calendar
oggetto può produrre tutti i valori del campo del calendario necessari per implementare la formattazione data-ora per un determinato stile di linguaggio e calendario(ad esempio, giapponese-gregoriano, giapponese-tradizionale). Calendar
definisce l'intervallo di valori restituiti da determinati campi del calendario, nonché il relativo significato. Ad esempio, il primo mese del sistema del calendario ha valore MONTH == JANUARY
per tutti i calendari. Altri valori sono definiti dalla sottoclasse concreta, ad esempio ERA
. Per informazioni dettagliate, vedere la documentazione del campo singolo e la documentazione relativa alla sottoclasse.
<h2 Recupero e impostazione dei valori dei campi< del calendario/h2>>
I valori dei campi del calendario possono essere impostati chiamando i set
metodi. Qualsiasi valore di campo impostato in un Calendar
non verrà interpretato finché non deve calcolare il valore di tempo (millisecondi dall'epoca) o i valori dei campi del calendario. La chiamata a get
, getTime
getTimeInMillis
, add
e roll
implica tale calcolo.
<h3 Leniency</h3>>
Calendar
ha due modalità per interpretare i campi del calendario, <em lenient/em> e <em>non lenient<</em>>. Quando un Calendar
oggetto è in modalità leniente, accetta un intervallo più ampio di valori di campo del calendario rispetto a quello che produce. Quando un Calendar
calendario ricompila i valori dei campi del calendario per restituiti da get()
, tutti i campi del calendario vengono normalizzati. Ad esempio, un leniente GregorianCalendar
interpreta MONTH == JANUARY
, DAY_OF_MONTH == 32
come 1 febbraio.
Quando un Calendar
oggetto è in modalità non leniente, genera un'eccezione se nei campi del calendario è presente una incoerenza. Ad esempio, un oggetto GregorianCalendar
produce DAY_OF_MONTH
sempre valori compresi tra 1 e la lunghezza del mese. Un oggetto non leniente GregorianCalendar
genera un'eccezione quando si calcolano i relativi valori di campo di tempo o calendario se è stato impostato un valore di campo non compreso nell'intervallo.
<h3>"first_week">First Week</h3>
Calendar
definisce una settimana specifica delle impostazioni locali di sette giorni usando due parametri: il primo giorno della settimana e i giorni minimi nella prima settimana (da 1 a 7). Questi numeri vengono acquisiti dai dati delle risorse locali o dalle impostazioni locali stesse quando viene costruito un oggetto Calendar
. Se le impostazioni locali designate contengono estensioni Unicode "fw", il primo giorno della settimana verrà ottenuto in base a tali estensioni. Possono anche essere specificati in modo esplicito tramite i metodi per impostare i relativi valori.
Quando si impostano o ottengono i WEEK_OF_MONTH
WEEK_OF_YEAR
campi, Calendar
è necessario determinare la prima settimana del mese o dell'anno come punto di riferimento. La prima settimana di un mese o di un anno è definita come il primo periodo di sette giorni che getFirstDayOfWeek()
inizia e contiene almeno getMinimalDaysInFirstWeek()
giorni di quel mese o anno. Settimane numerate ..., -1, 0 precedono la prima settimana; settimane numerate 2, 3,... seguilo. Si noti che la numerazione normalizzata restituita da get()
può essere diversa. Ad esempio, una sottoclasse specifica Calendar
può designare la settimana prima della settimana 1 di un anno come settimana <i>n</i>
dell'anno precedente.
<h3 Risoluzione dei campi< del calendario/h3>>
Quando si calcola una data e un'ora dai campi del calendario, potrebbero esserci informazioni sufficienti per il calcolo (ad esempio solo anno e mese senza giorno del mese) o potrebbero esserci informazioni incoerenti (ad esempio martedì, luglio 15, 1996 (gregoriano) - il 15 luglio 1996 è in realtà un lunedì. Calendar
risolve i valori del campo del calendario per determinare la data e l'ora nel modo seguente.
"resolution">Se si verifica un conflitto nei valori del campo del calendario, <c Calendar</c>> assegna priorità ai campi del calendario impostati più di recente. Di seguito sono riportate le combinazioni predefinite dei campi del calendario. Verrà usata la combinazione più recente, come determinato dal campo singolo impostato più di recente.
"date_resolution">Per i campi di data: <blockquote>
YEAR + MONTH + DAY_OF_MONTH
YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK
YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK
YEAR + DAY_OF_YEAR
YEAR + DAY_OF_WEEK + WEEK_OF_YEAR
</Blockquote>
"time_resolution">Per l'ora dei campi giorno: <blockquote>
HOUR_OF_DAY
AM_PM + HOUR
</Blockquote>
Se sono presenti campi di calendario i cui valori non sono stati impostati nella combinazione di campi selezionati, Calendar
usa i valori predefiniti. Il valore predefinito di ogni campo può variare in base ai sistemi di calendario concreti. Ad esempio, in GregorianCalendar
, il valore predefinito di un campo è uguale a quello dell'inizio dell'epoca: ad esempio, YEAR = 1970
MONTH = JANUARY
, , DAY_OF_MONTH = 1
e così via.
<nota forte:/forte>> Esistono alcune possibili ambiguità nell'interpretazione di determinati tempi singolari, risolti nei modi seguenti: <ol><li> 23:<59 è l'ultimo minuto del giorno e 00:00 è il primo minuto del giorno successivo. Così, 23:59 il 31 dicembre 1999 < 00:00 il 1° gennaio 2000 < 00:01 il 1 gennaio 2000.
<li> Anche se storicamente non precisa, mezzanotte appartiene anche a "am", e noon appartiene a "pm", così lo stesso giorno, 12:00 (mezzanotte) < 12:01 e 12:00 (noon) < 12:01 </ol>
Le stringhe di formato data o ora non fanno parte della definizione di un calendario, poiché queste devono essere modificabili o sostituibili dall'utente in fase di esecuzione. Usare DateFormat
per formattare le date.
<manipolazione del campo< h3/h3>>
I campi del calendario possono essere modificati usando tre metodi: set()
, add()
e roll()
.
<campo del calendario delle modifiche forti>set(f, value)
</forti> in value
.f
Imposta inoltre una variabile membro interna per indicare che il campo f
del calendario è stato modificato. Anche se il campo f
del calendario viene modificato immediatamente, il valore dell'ora del calendario in millisecondi non viene ricompilate fino a quando la chiamata successiva a get()
, getTime()
getTimeInMillis()
, add()
, o roll()
viene effettuata. Pertanto, più chiamate per set()
non attivare più calcoli non necessari. In seguito alla modifica di un campo calendario usando set()
, altri campi del calendario possono anche cambiare, a seconda del campo calendario, del valore del campo del calendario e del sistema del calendario. Inoltre, get(f)
non restituirà value
necessariamente il set impostato dalla chiamata al metodo dopo che i campi del set
calendario sono stati ricompilate. Le specifiche sono determinate dalla classe del calendario concreto.
<em>Example</em>: prendere in considerazione un GregorianCalendar
valore originariamente impostato sul 31 agosto 1999. La chiamata set(Calendar.MONTH, Calendar.SEPTEMBER)
imposta la data del 31 settembre 1999. Si tratta di una rappresentazione interna temporanea che si risolve al 1° ottobre 1999 se getTime()
viene chiamata. Tuttavia, una chiamata a prima della chiamata imposta set(Calendar.DAY_OF_MONTH, 30)
getTime()
la data del 30 settembre 1999, poiché non si verifica alcuna ricomputazione dopo set()
se stessa.
<strong/strong><add(f, delta)
> aggiunge delta
al campo .f
Equivale a chiamare set(f, get(f) + delta)
con due regolazioni:
<Blockquote>
<strong Add rule 1</strong.>> Valore del campo dopo la chiamata meno il valore del campo f
f
prima che la chiamata sia delta
, modulo qualsiasi overflow che si è verificato nel campo f
. Il overflow si verifica quando un valore di campo supera l'intervallo e, di conseguenza, il campo più grande successivo viene incrementato o decrementato e il valore del campo viene modificato nuovamente nell'intervallo.
<strong>Add rule 2</strong>. Se si prevede che un campo più piccolo sia invariante, ma non è possibile che sia uguale al valore precedente a causa delle modifiche apportate al valore minimo o massimo dopo che il campo f
viene modificato o altri vincoli, ad esempio l'offset del fuso orario cambia, il relativo valore viene modificato per essere più vicino possibile al relativo valore previsto. Un campo più piccolo rappresenta un'unità di tempo più piccola. HOUR
è un campo più piccolo di DAY_OF_MONTH
. Nessuna regolazione viene apportata a campi più piccoli che non devono essere invarianti. Il sistema di calendario determina quali campi devono essere invarianti.
</Blockquote>
Diversamente set()
da , add()
forza inoltre una ricomputazione immediata dei millisecondi del calendario e di tutti i campi.
<em>Example</em>: Consider a GregorianCalendar
original set to August 31, 1999. La chiamata add(Calendar.MONTH, 13)
imposta il calendario sul 30 settembre 2000. <forte>Aggiungi regola 1</forte> imposta il MONTH
campo su settembre, dal momento che l'aggiunta di 13 mesi ad agosto dà settembre del prossimo anno. Poiché DAY_OF_MONTH
non può essere 31 in settembre in un GregorianCalendar
, la>< regola di aggiunta avanzata 2</strong> imposta su DAY_OF_MONTH
30, il valore più vicino possibile. Anche se si tratta di un campo più piccolo, DAY_OF_WEEK
non viene modificato dalla regola 2, poiché è previsto che venga modificato quando il mese cambia in un oggetto GregorianCalendar
.
<strong>roll(f, delta)
</strong> aggiunge delta
al campo f
senza modificare campi più grandi. Equivale a chiamare add(f, delta)
con la regolazione seguente:
<Blockquote>
<regola di rollback</>forte> forte. I campi più grandi sono invariati dopo la chiamata. Un campo più grande rappresenta un'unità di tempo più grande. DAY_OF_MONTH
è un campo più grande di HOUR
.
</Blockquote>
<em>Example</em>: Vedere java.util.GregorianCalendar#roll(int, int)
.
<modello di utilizzo< avanzato>/forte>. Per motivare il comportamento di add()
e roll()
, considerare un componente dell'interfaccia utente con pulsanti di incremento e decremento per il mese, il giorno e l'anno e un oggetto sottostante GregorianCalendar
. Se l'interfaccia legge il 31 gennaio 1999 e l'utente preme il pulsante incremento del mese, cosa dovrebbe leggere? Se l'implementazione sottostante usa set()
, potrebbe leggere il 3 marzo 1999. Un risultato migliore sarebbe il 28 febbraio 1999. Inoltre, se l'utente preme di nuovo il pulsante di incremento del mese, dovrebbe leggere il 31 marzo 1999, non il 28 marzo 1999. Salvando la data originale e usando add()
o roll()
, a seconda che i campi più grandi debbano essere interessati, l'interfaccia utente può comportarsi come la maggior parte degli utenti si aspetterà in modo intuitivo.
Aggiunta nella versione 1.1.
Documentazione java per java.util.Calendar
.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal Android e usato in base ai termini descritti in 2.5 Attribution License Creative Commons 2.5 Attribution License.
Costruttori
Calendar() |
Costruisce un calendario con il fuso orario predefinito e le impostazioni locali predefinite |
Calendar(IntPtr, JniHandleOwnership) |
Costruttore utilizzato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime. |
Calendar(TimeZone, Locale) |
Costruisce un calendario con il fuso orario e le impostazioni locali specificati. |
Campi
AllStyles |
Obsoleti.
Identificatore di stile per |
Am |
Valore del |
AmPm |
Obsoleti.
Numero di campo per |
April |
Valore del |
August |
Valore del |
Date |
Obsoleti.
Numero di campo per |
DayOfMonth |
Obsoleti.
Numero di campo per |
DayOfWeek |
Obsoleti.
Numero di campo per |
DayOfWeekInMonth |
Obsoleti.
Numero di campo per |
DayOfYear |
Obsoleti.
Numero di campo per |
December |
Valore del |
DstOffset |
Obsoleti.
Numero di campo per |
Era |
Obsoleti.
Numero di campo per |
February |
Valore del |
FieldCount |
Numero di campi distinti riconosciuti da |
Friday |
Valore del |
Hour |
Obsoleti.
Numero di campo per |
HourOfDay |
Obsoleti.
Numero di campo per |
January |
Valore del |
July |
Valore del |
June |
Valore del |
Long |
Obsoleti.
Identificatore di stile per |
LongFormat |
Identificatore di stile per |
LongStandalone |
Identificatore di stile per |
March |
Valore del |
May |
Valore del |
Millisecond |
Obsoleti.
Numero di campo per |
Minute |
Obsoleti.
Numero di campo per |
Monday |
Valore del |
Month |
Obsoleti.
Numero di campo per |
NarrowFormat |
Identificatore di stile per |
NarrowStandalone |
Identificatore di stile per |
November |
Valore del |
October |
Valore del |
Pm |
Valore del |
Saturday |
Valore del |
Second |
Obsoleti.
Numero di campo per |
September |
Valore del |
Short |
Obsoleti.
Identificatore di stile per |
ShortFormat |
Identificatore di stile per |
ShortStandalone |
Identificatore di stile per |
Sunday |
Valore del |
Thursday |
Valore del |
Tuesday |
Valore del |
Undecimber |
Valore del |
Wednesday |
Valore del |
WeekOfMonth |
Obsoleti.
Numero di campo per |
WeekOfYear |
Obsoleti.
Numero di campo per |
Year |
Obsoleti.
Numero di campo per |
ZoneOffset |
Obsoleti.
Numero di campo per |
Proprietà
AreFieldsSet |
True se |
AvailableCalendarTypes |
Restituisce un oggetto non modificabile |
CalendarType |
Restituisce il tipo di calendario dell'oggetto |
Class |
Restituisce la classe di runtime di questo |
Fields |
Valori del campo del calendario per l'ora attualmente impostata per il calendario. |
FirstDayOfWeek |
Ottiene il primo giorno della settimana; e. |
Handle |
Handle per l'istanza di Android sottostante. (Ereditato da Object) |
Instance |
Ottiene un calendario utilizzando il fuso orario predefinito e le impostazioni locali. |
IsTimeSet |
True se il valore di |
IsWeekDateSupported |
Restituisce un valore che indica se supporta |
JniIdentityHashCode |
La |
JniPeerMembers |
La |
Lenient |
Indica se l'interpretazione di data/ora deve essere leniente. |
MinimalDaysInFirstWeek |
Ottiene i giorni minimi richiesti nella prima settimana dell'anno; e. |
PeerReference |
La |
ThresholdClass |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
ThresholdType |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
Time |
Restituisce un |
TimeInMillis |
Restituisce il valore dell'ora del calendario in millisecondi. |
TimeZone |
Ottiene il fuso orario. -or- Imposta il fuso orario con il valore del fuso orario specificato. |
WeeksInWeekYear |
Restituisce il numero di settimane nell'anno della settimana rappresentato da questo |
WeekYear |
Restituisce l'anno di settimana rappresentato da questo |
Metodi
Add(CalendarField, Int32) |
Aggiunge o sottrae la quantità di tempo specificata al campo del calendario specificato, in base alle regole del calendario. |
After(Object) |
Restituisce un valore che indica se rappresenta |
Before(Object) |
Restituisce un valore che indica se rappresenta |
Clear() |
Imposta tutti i valori del campo del calendario e il valore di ora (offset di millisecondi rispetto a "#Epoch">Epoch) di questo |
Clear(CalendarField) |
Imposta il valore del campo del calendario specificato e il valore di ora (offset in millisecondi rispetto al valore "#Epoch">Epoch) di questo |
Clone() |
Crea e restituisce una copia di questo oggetto. |
CompareTo(Calendar) |
Confronta i valori di ora (offset in millisecondi rispetto a "#Epoch">Epoch) rappresentati da due |
Complete() |
Compila tutti i campi non setti nei campi del calendario. |
ComputeFields() |
Converte il valore |
ComputeTime() |
Converte i valori del campo del calendario corrente in |
Dispose() |
La |
Dispose(Boolean) |
La |
Equals(Object) |
Indica se un altro oggetto è "uguale a" questo. (Ereditato da Object) |
Get(CalendarField) |
Restituisce il valore del campo del calendario specificato. |
GetActualMaximum(CalendarField) |
Restituisce il valore massimo che il campo del calendario specificato potrebbe avere, dato il valore di ora dell'oggetto |
GetActualMinimum(CalendarField) |
Restituisce il valore minimo che il campo del calendario specificato potrebbe avere, dato il valore di ora di questo |
GetAvailableLocales() |
Restituisce una matrice di tutte le impostazioni locali per cui i |
GetDisplayName(Int32, Int32, Locale) |
Restituisce la rappresentazione di stringa del valore del calendario |
GetDisplayNames(Int32, Int32, Locale) |
Restituisce un |
GetGreatestMinimum(CalendarField) |
Restituisce il valore minimo più alto per il campo del calendario specificato di questa |
GetHashCode() |
Restituisce un valore del codice hash per l'oggetto. (Ereditato da Object) |
GetInstance(Locale) |
Ottiene un calendario utilizzando il fuso orario predefinito e le impostazioni locali specificate. |
GetInstance(TimeZone) |
Ottiene un calendario utilizzando il fuso orario specificato e le impostazioni locali predefinite. |
GetInstance(TimeZone, Locale) |
Ottiene un calendario con il fuso orario e le impostazioni locali specificati. |
GetLeastMaximum(CalendarField) |
Restituisce il valore massimo minimo per il campo del calendario specificato di questa |
GetMaximum(CalendarField) |
Restituisce il valore massimo per il campo del calendario specificato di questa |
GetMinimum(CalendarField) |
Restituisce il valore minimo per il campo del calendario specificato di questa |
InternalGet(Int32) |
Restituisce il valore del campo del calendario specificato. |
IsSet(CalendarField) |
Determina se il campo del calendario specificato ha un valore impostato, inclusi i case che il valore è stato impostato dai calcoli dei campi interni attivati da una |
JavaFinalize() |
Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto . (Ereditato da Object) |
Notify() |
Riattiva un singolo thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
NotifyAll() |
Riattiva tutti i thread in attesa del monitoraggio di questo oggetto. (Ereditato da Object) |
Roll(CalendarField, Boolean) |
Aggiunge o sottrae (su/giù) una singola unità di tempo nel campo ora specificato senza modificare campi più grandi. |
Roll(CalendarField, Int32) |
Aggiunge l'importo specificato (firmato) al campo del calendario specificato senza modificare i campi più grandi. |
Set(CalendarField, Int32) |
Imposta il campo del calendario specificato sul valore specificato. |
Set(Int32, Int32, Int32) |
Imposta i valori per i campi |
Set(Int32, Int32, Int32, Int32, Int32) |
Imposta i valori per i campi |
Set(Int32, Int32, Int32, Int32, Int32, Int32) |
Imposta i valori per i campi |
SetHandle(IntPtr, JniHandleOwnership) |
Imposta la proprietà Handle. (Ereditato da Object) |
SetWeekDate(Int32, Int32, Int32) |
Imposta la data di questo |
ToArray<T>() |
La |
ToInstant() |
La |
ToString() |
Restituisce una rappresentazione in formato stringa dell'oggetto. (Ereditato da Object) |
UnregisterFromRuntime() |
La |
Wait() |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere eseguendo <una>notifica</em> o <em>interrotto</em>. (Ereditato da Object) |
Wait(Int64) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere eseguendo <una notifica</>em> o <em>interrotto</em> o fino a quando non è trascorsa una certa quantità di tempo reale. (Ereditato da Object) |
Wait(Int64, Int32) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere eseguendo <una notifica</>em> o <em>interrotto</em> o fino a quando non è trascorsa una certa quantità di tempo reale. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
IComparable.CompareTo(Object) |
La |
IJavaPeerable.Disposed() |
La |
IJavaPeerable.DisposeUnlessReferenced() |
La |
IJavaPeerable.Finalized() |
La |
IJavaPeerable.JniManagedPeerState |
La |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
La |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
La |
IJavaPeerable.SetPeerReference(JniObjectReference) |
La |
Metodi di estensione
JavaCast<TResult>(IJavaObject) |
Esegue una conversione del tipo verificato dal runtime Android. |
JavaCast<TResult>(IJavaObject) |
La |
GetJniTypeName(IJavaPeerable) |
La |