Calendar Clase
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í.
La Calendar clase es una clase abstracta que proporciona métodos para convertir entre un instante específico en el tiempo y un conjunto de #fields calendar fields como YEAR, MONTH, DAY_OF_MONTH, HOUR, etc., y para manipular los campos de calendario, como obtener la fecha de la semana siguiente.
[Android.Runtime.Register("java/util/Calendar", DoNotGenerateAcw=true)]
public abstract class Calendar : Java.Lang.Object, IDisposable, 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
- Herencia
- Derivado
- Atributos
- Implementaciones
Comentarios
La Calendar clase es una clase abstracta que proporciona métodos para convertir entre un instante específico en el tiempo y un conjunto de #fields calendar fields como YEAR, MONTH, DAY_OF_MONTH, HOUR, etc., y para manipular los campos de calendario, como obtener la fecha de la semana siguiente. Un instante en el tiempo se puede representar mediante un valor de milisegundos que es un desplazamiento de la "Época"><em>Época</em>, 1 de enero de 1970 00:00:00.000 GMT (Gregoriano).
La clase también proporciona campos y métodos adicionales para implementar un sistema de calendario concreto fuera del paquete. Esos campos y métodos se definen como protected.
Al igual que otras clases que distinguen la configuración regional, Calendar proporciona un método de clase, getInstance, para obtener un objeto generalmente útil de este tipo.
CalendarEl método de getInstance devuelve un Calendar objeto cuyos campos de calendario se han inicializado con la fecha y hora actuales: <blockquote>
Calendar rightNow = Calendar.getInstance();
</blockquote>
Un Calendar objeto puede generar todos los valores de campo de calendario necesarios para implementar el formato de fecha y hora para un idioma y un estilo de calendario concretos (por ejemplo, japonés-gregoriano, Japanese-Traditional).
Calendar define el intervalo de valores devueltos por determinados campos de calendario, así como su significado. Por ejemplo, el primer mes del sistema de calendario tiene valor MONTH == JANUARY para todos los calendarios. Otros valores se definen mediante la subclase concreta, como ERA. Consulte la documentación de campos individuales y la documentación de subclase para obtener más información.
<h2>Obtener y establecer valores< de campo de calendario/h2>
Los valores del campo de calendario se pueden establecer llamando a los set métodos . Los valores de campo establecidos en un Calendar no se interpretarán hasta que necesite calcular su valor de tiempo (milisegundos de la época) o los valores de los campos de calendario.
getLlamar a , getTimeInMillis, getTimeadd e roll implica este cálculo.
<h3>Leniency</h3>
Calendar tiene dos modos para interpretar los campos del calendario, <em>lenient</em> y <em>non-lenient</em>. Cuando un Calendar objeto está en modo lenciente, acepta una gama más amplia de valores de campo de calendario que genera. Cuando un Calendar recompute valores de campo de calendario para devolver por get(), se normalizan todos los campos de calendario. Por ejemplo, un leniento GregorianCalendar interpreta MONTH == JANUARY, DAY_OF_MONTH == 32 como 1 de febrero.
Cuando un Calendar objeto está en modo no flexible, produce una excepción si hay alguna incoherencia en sus campos de calendario. Por ejemplo, un GregorianCalendar siempre genera DAY_OF_MONTH valores entre 1 y la longitud del mes. Un no sensible GregorianCalendar produce una excepción al calcular sus valores de campo de tiempo o calendario si se ha establecido algún valor de campo fuera del intervalo.
<h3>"first_week">Primera semana</h3>
Calendar define una semana de siete días específica de la configuración regional con dos parámetros: el primer día de la semana y los días mínimos de la primera semana (de 1 a 7). Estos números se toman de los datos del recurso de configuración regional o de la propia configuración regional cuando se construye un Calendar . Si la configuración regional designada contiene extensiones Unicode "fw", el primer día de la semana se obtendrá según esas extensiones. También se pueden especificar explícitamente a través de los métodos para establecer sus valores.
Al establecer o obtener los WEEK_OF_MONTH campos o WEEK_OF_YEAR , Calendar debe determinar la primera semana del mes o año como punto de referencia. La primera semana de un mes o año se define como el primer período de siete días que comienza getFirstDayOfWeek() y contiene al menos getMinimalDaysInFirstWeek() días de ese mes o año. Semanas numeradas ..., -1, 0 preceden a la primera semana; semanas numeradas 2, 3,... síguelo. Tenga en cuenta que la numeración normalizada devuelta por get() puede ser diferente. Por ejemplo, una subclase específica Calendar puede designar la semana anterior a la semana 1 de un año como semana <i>n</i> del año anterior.
<h3>Resolución< de campos de calendario/h3>
Al calcular una fecha y hora de los campos de calendario, puede que no haya información suficiente para el cálculo (por ejemplo, solo año y mes sin día de mes), o puede haber información incoherente (como martes, 15 de julio de 1996 (gregoriano): el 15 de julio de 1996 es realmente un lunes).
Calendar resolverá los valores del campo de calendario para determinar la fecha y hora de la siguiente manera.
"resolución">Si hay algún conflicto en los valores de campo de calendario, <c>Calendar</c> da prioridades a los campos de calendario que se han establecido más recientemente. A continuación se muestran las combinaciones predeterminadas de los campos de calendario. Se usará la combinación más reciente, determinada por el campo único establecido más recientemente.
"date_resolution">Para los campos de fecha: <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">Para la hora de los campos de día: <blockquote>
HOUR_OF_DAY
AM_PM + HOUR
</blockquote>
Si hay campos de calendario cuyos valores no se han establecido en la combinación de campos seleccionados, Calendar usa sus valores predeterminados. El valor predeterminado de cada campo puede variar según los sistemas de calendario concretos. Por ejemplo, en GregorianCalendar, el valor predeterminado de un campo es el mismo que el del inicio de la época: es decir, YEAR = 1970, , MONTH = JANUARY, DAY_OF_MONTH = 1etc.
<nota fuerte>:</fuerte> Hay ciertas ambigüedades posibles en la interpretación de ciertos tiempos singulares, que se resuelven de las siguientes maneras: <ol><li> 23:59 es el último minuto del día y 00:00 es el primer minuto del día siguiente. Por lo tanto, 23:59 el 31 de dic, 1999 < 00:00 el 1 de enero de 2000 < 00:01 el 1 de enero de 2000.
Las cadenas de formato de fecha u hora no forman parte de la definición de un calendario, ya que deben ser modificables o invalidables por el usuario en tiempo de ejecución. Use DateFormat para dar formato a las fechas.
<h3>Manipulación de< campos/h3>
Los campos de calendario se pueden cambiar mediante tres métodos: set(), add()y roll().
<campo de calendario de cambios seguros>set(f, value)< o seguros> en f.value Además, establece una variable miembro interna para indicar que se ha cambiado el campo f de calendario. Aunque el campo f de calendario se cambia inmediatamente, el valor de hora del calendario en milisegundos no se vuelve a calcular hasta que se realiza la siguiente llamada a get(), getTime(), getTimeInMillis(), add()o roll() . Por lo tanto, varias llamadas para set() no desencadenar varios cálculos innecesarios. Como resultado de cambiar un campo de calendario mediante set(), otros campos de calendario también pueden cambiar, según el campo de calendario, el valor del campo de calendario y el sistema de calendario. Además, get(f) no devolverá value necesariamente establecido por la llamada al método después de que se hayan vuelto a set calcular los campos de calendario. Los detalles están determinados por la clase de calendario concreta.
<em>Example</em>: Considere un GregorianCalendar valor original establecido en el 31 de agosto de 1999. La llamada set(Calendar.MONTH, Calendar.SEPTEMBER) establece la fecha al 31 de septiembre de 1999. Se trata de una representación interna temporal que se resuelve hasta el 1 de octubre de 1999 si getTime() se llama a continuación. Sin embargo, una llamada a set(Calendar.DAY_OF_MONTH, 30) antes de la llamada a getTime() establece la fecha en el 30 de septiembre de 1999, ya que no se produce ninguna recomputación después set() de sí misma.
<se agrega > fuerteadd(f, delta)<> o fuertedelta al campo .f Esto equivale a llamar set(f, get(f) + delta) a con dos ajustes:
<blockquote>
<strong>Add rule 1</strong>. El valor del campo f después de la llamada menos el valor del campo f antes de la llamada es delta, módulo cualquier desbordamiento que se haya producido en el campo f. El desbordamiento se produce cuando un valor de campo supera su intervalo y, como resultado, el siguiente campo mayor se incrementa o disminuye y el valor del campo se vuelve a ajustar en su intervalo.
<strong>Add rule 2/strong( Agregar regla 2</strong>). Si se espera que un campo más pequeño sea invariable, pero es imposible que sea igual a su valor anterior debido a los cambios en su mínimo o máximo después de cambiar el campo f u otras restricciones, como los cambios de desplazamiento de zona horaria, su valor se ajusta para ser lo más cercano posible a su valor esperado. Un campo más pequeño representa una unidad de tiempo más pequeña.
HOUR es un campo menor que DAY_OF_MONTH. No se realiza ningún ajuste en campos más pequeños que no se espera que sean invariables. El sistema de calendario determina qué campos se espera que sean invariables.
</blockquote>
Además, a diferencia set()de , add() fuerza una recomputación inmediata de los milisegundos del calendario y todos los campos.
<em>Example</em>: Considere un GregorianCalendar valor original establecido en el 31 de agosto de 1999. La llamada add(Calendar.MONTH, 13) establece el calendario al 30 de septiembre de 2000.
<strong>Add rule 1</strong> establece el MONTH campo en septiembre, ya que la adición de 13 meses a agosto da septiembre del próximo año. Puesto que DAY_OF_MONTH no puede ser 31 en septiembre en , GregorianCalendar<la regla de adición fuerte 2>/strong<> establece en DAY_OF_MONTH 30, el valor más cercano posible. Aunque es un campo más pequeño, DAY_OF_WEEK no se ajusta mediante la regla 2, ya que se espera que cambie cuando el mes cambie en .GregorianCalendar
<se agrega > fuerteroll(f, delta)<> o fuertedelta al campo f sin cambiar los campos más grandes. Esto equivale a llamar add(f, delta) a con el siguiente ajuste:
<blockquote>
<regla de roll> fuerte</fuerte>. Los campos más grandes no se modifican después de la llamada. Un campo mayor representa una unidad de tiempo mayor.
DAY_OF_MONTH es un campo mayor que HOUR.
</blockquote>
<em>Example</em>: see java.util.GregorianCalendar#roll(int, int).
<modelo de uso> seguro</seguro>. Para motivar el comportamiento de y add(), considere un componente de roll() interfaz de usuario con botones de incremento y decremento para el mes, el día y el año, y un subyacenteGregorianCalendar. Si la interfaz lee el 31 de enero de 1999 y el usuario presiona el botón de incremento de mes, ¿qué debe leer? Si la implementación subyacente usa set(), puede leer el 3 de marzo de 1999. Un mejor resultado sería el 28 de febrero de 1999. Además, si el usuario vuelve a presionar el botón de incremento del mes, debe leer el 31 de marzo de 1999, no el 28 de marzo de 1999. Al guardar la fecha original y usar o add()roll(), dependiendo de si los campos más grandes deben verse afectados, la interfaz de usuario puede comportarse como la mayoría de los usuarios esperarán de forma intuitiva.
Agregado en la versión 1.1.
Java documentación para java.util.Calendar.
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.
Constructores
| Nombre | Description |
|---|---|
| Calendar() |
Construye un calendario con la zona horaria predeterminada y la configuración regional predeterminada |
| Calendar(IntPtr, JniHandleOwnership) |
Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución. |
| Calendar(TimeZone, Locale) |
Construye un calendario con la zona horaria y la configuración regional especificadas. |
Campos
| Nombre | Description |
|---|---|
| AllStyles |
Obsoletos.
Especificador de estilo para |
| Am |
Valor del |
| AmPm |
Obsoletos.
Número de campo para |
| April |
Valor del |
| August |
Valor del |
| Date |
Obsoletos.
Número de campo para |
| DayOfMonth |
Obsoletos.
Número de campo para |
| DayOfWeek |
Obsoletos.
Número de campo para |
| DayOfWeekInMonth |
Obsoletos.
Número de campo para |
| DayOfYear |
Obsoletos.
Número de campo para |
| December |
Valor del |
| DstOffset |
Obsoletos.
Número de campo para |
| Era |
Obsoletos.
Número de campo para |
| February |
Valor del |
| FieldCount |
Número de campos distintos reconocidos por |
| Friday |
Valor del |
| Hour |
Obsoletos.
Número de campo para |
| HourOfDay |
Obsoletos.
Número de campo para |
| January |
Valor del |
| July |
Valor del |
| June |
Valor del |
| Long |
Obsoletos.
Especificador de estilo para |
| LongFormat |
Especificador de estilo para |
| LongStandalone |
Especificador de estilo para |
| March |
Valor del |
| May |
Valor del |
| Millisecond |
Obsoletos.
Número de campo para |
| Minute |
Obsoletos.
Número de campo para |
| Monday |
Valor del |
| Month |
Obsoletos.
Número de campo para |
| NarrowFormat |
Especificador de estilo para |
| NarrowStandalone |
Especificador de estilo para |
| November |
Valor del |
| October |
Valor del |
| Pm |
Valor del |
| Saturday |
Valor del |
| Second |
Obsoletos.
Número de campo para |
| September |
Valor del |
| Short |
Obsoletos.
Especificador de estilo para |
| ShortFormat |
Especificador de estilo para |
| ShortStandalone |
Especificador de estilo para |
| Sunday |
Valor del |
| Thursday |
Valor del |
| Tuesday |
Valor del |
| Undecimber |
Valor del |
| Wednesday |
Valor del |
| WeekOfMonth |
Obsoletos.
Número de campo para |
| WeekOfYear |
Obsoletos.
Número de campo para |
| Year |
Obsoletos.
Número de campo para |
| ZoneOffset |
Obsoletos.
Número de campo para |
Propiedades
| Nombre | Description |
|---|---|
| AreFieldsSet |
True si |
| AvailableCalendarTypes |
Devuelve un valor no modificable |
| CalendarType |
Devuelve el tipo de calendario de este |
| Class |
Devuelve la clase en tiempo de ejecución de este |
| Fields |
Valores de campo de calendario para la hora establecida actualmente para este calendario. |
| FirstDayOfWeek |
Obtiene lo que es el primer día de la semana; e. |
| Handle |
Identificador de la instancia de Android subyacente. (Heredado de Object) |
| Instance |
Obtiene un calendario mediante la zona horaria y la configuración regional predeterminadas. |
| IsTimeSet |
True si el valor de |
| IsWeekDateSupported |
Devuelve si esto |
| JniIdentityHashCode |
Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad. (Heredado de Object) |
| JniManagedPeerState |
La |
| JniPeerMembers |
La |
| Lenient |
Indica si la interpretación de fecha y hora es flexible. |
| MinimalDaysInFirstWeek |
Obtiene cuáles son los días mínimos necesarios en la primera semana del año; e. |
| PeerReference |
Obtiene la referencia de objeto JNI para este Java del mismo nivel. (Heredado de Object) |
| ThresholdClass |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
| ThresholdType |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
| Time |
Devuelve un |
| TimeInMillis |
Devuelve el valor de hora de este calendario en milisegundos. |
| TimeZone |
Obtiene la zona horaria. -o bien- Establece la zona horaria con el valor de zona horaria especificado. |
| WeeksInWeekYear |
Devuelve el número de semanas del año de semana representado por este |
| WeekYear |
Devuelve el año de la semana representado por este |
Métodos
| Nombre | Description |
|---|---|
| Add(CalendarField, Int32) |
Agrega o resta la cantidad de tiempo especificada al campo de calendario especificado, en función de las reglas del calendario. |
| After(Object) |
Devuelve si esto |
| Before(Object) |
Devuelve si esto |
| Clear() |
Establece todos los valores del campo de calendario y el valor de hora (desplazamiento de milisegundos de la "#Epoch">Época) de este |
| Clear(CalendarField) |
Establece el valor del campo de calendario especificado y el valor de hora (desplazamiento de milisegundos de la "#Epoch">Época) de este |
| Clone() |
Crea y devuelve una copia de este objeto. |
| CompareTo(Calendar) |
Compara los valores de tiempo (desplazamientos milisegundos de la "#Epoch">Época) representados por dos |
| Complete() |
Rellena los campos sin establecer en los campos de calendario. |
| ComputeFields() |
Convierte el valor |
| ComputeTime() |
Convierte los valores del campo de calendario actual en |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
La |
| Dispose() |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| Dispose(Boolean) |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| DisposeUnlessReferenced() |
La |
| Equals(Object) |
La |
| Equals(Object) |
Indica si algún otro objeto es "igual a" este. (Heredado de Object) |
| Get(CalendarField) |
Devuelve el valor del campo de calendario especificado. |
| GetActualMaximum(CalendarField) |
Devuelve el valor máximo que podría tener el campo de calendario especificado, dado el valor de hora de . |
| GetActualMinimum(CalendarField) |
Devuelve el valor mínimo que podría tener el campo de calendario especificado, dado el valor de hora de . |
| GetAvailableLocales() |
Devuelve una matriz de todas las configuraciones regionales para las que los |
| GetDisplayName(Int32, Int32, Locale) |
Devuelve la representación de cadena del valor de calendario |
| GetDisplayNames(Int32, Int32, Locale) |
Devuelve un |
| GetGreatestMinimum(CalendarField) |
Devuelve el valor mínimo más alto para el campo de calendario especificado de esta |
| GetHashCode() |
Devuelve un valor de código hash para el objeto . (Heredado de Object) |
| GetInstance(Locale) |
Obtiene un calendario mediante la zona horaria predeterminada y la configuración regional especificada. |
| GetInstance(TimeZone, Locale) |
Obtiene un calendario con la zona horaria y la configuración regional especificadas. |
| GetInstance(TimeZone) |
Obtiene un calendario mediante la zona horaria especificada y la configuración regional predeterminada. |
| GetLeastMaximum(CalendarField) |
Devuelve el valor máximo más bajo para el campo de calendario especificado de esta |
| GetMaximum(CalendarField) |
Devuelve el valor máximo del campo de calendario especificado de esta |
| GetMinimum(CalendarField) |
Devuelve el valor mínimo del campo de calendario especificado de esta |
| InternalGet(Int32) |
Devuelve el valor del campo de calendario especificado. |
| IsSet(CalendarField) |
Determina si el campo de calendario especificado tiene un conjunto de valores, incluidos los casos en los que se ha establecido el valor mediante cálculos de campos internos desencadenados por una |
| JavaFinalize() |
Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto . (Heredado de Object) |
| Notify() |
Activa un único subproceso que está esperando en el monitor de este objeto. (Heredado de Object) |
| NotifyAll() |
Activa todos los subprocesos que están esperando en el monitor de este objeto. (Heredado de Object) |
| Roll(CalendarField, Boolean) |
Agrega o resta (arriba/abajo) una sola unidad de tiempo en el campo de tiempo dado sin cambiar campos más grandes. |
| Roll(CalendarField, Int32) |
Agrega la cantidad especificada (firmada) al campo de calendario especificado sin cambiar los campos más grandes. |
| Set(CalendarField, Int32) |
Establece el campo de calendario especificado en el valor especificado. |
| Set(Int32, Int32, Int32, Int32, Int32, Int32) |
Establece los valores de los campos |
| Set(Int32, Int32, Int32, Int32, Int32) |
Establece los valores de los campos |
| Set(Int32, Int32, Int32) |
Establece los valores de los campos |
| SetHandle(IntPtr, JniHandleOwnership) |
Establece la propiedad Handle. (Heredado de Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
La |
| SetWeekDate(Int32, Int32, Int32) |
Establece la fecha de esto |
| ToArray<T>() |
Crea una matriz administrada a partir de este contenedor de matriz Java. (Heredado de Object) |
| ToInstant() |
La |
| ToString() |
Devuelve una representación de cadena del objeto . (Heredado de Object) |
| UnregisterFromRuntime() |
Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad. (Heredado de Object) |
| Wait() |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><> (Heredado de Object) |
| Wait(Int64, Int32) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
| Wait(Int64) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| IComparable.CompareTo(Object) |
La |
| IJavaPeerable.Disposed() |
La |
| IJavaPeerable.Finalized() |
La |
| IJavaPeerable.JniObjectReferenceControlBlock |
La |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
La |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
La |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
La |
| IJavaPeerable.UnregisterFromRuntime() |
La |
Métodos de extensión
| Nombre | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtiene el nombre JNI del tipo de la instancia |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
| JavaCast<TResult>(IJavaObject) |
La |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Intente coerción |