Clases Utiles: Calendar y GregorianCalendar

Class Calendar

java.lang.Object
java.util.Calendar

La clase Calendar es sub-clase de object y pertenece al paquete "util" por lo cual será necesario importarlo previamente antes de usarlo. Implementa Serializable, Cloneable, Comparable<Calendar> como interfaces. Hay que notar que es una clase abstracta y no puede instanciarse.

Tiene sólo 2 constructores:

  • Calendar()
    • Construye un calendario con la zona horaria predeterminada y la configuración regional.
  • Calendar(TimeZone zone, Locale aLocale)
    • Construye un calendario con la zona horaria y la configuración regional especificada.

Cuenta con varias variables de clase del tipo int para la construcción de un calendario:

  • MILLISECOND
    • Número de milisegundo dentro de un segundo (0-999).
  • SECOND
    • Número de segundos dentro de un minuto (0-59).
  • MINUTE
    • Número de minutos dentro de una hora (0-59).
  • HOUR
    • Número de hora dentro del dia (0-11) o de la mañana o de la tarde-noche.
  • HOUR_OF_DAY
    • Número de hora dentro de un día(0-23).

  • DAY_OF_MONTH y DATE
    • Número de día del mes (1-31) para obtner y configurar.
  • DAY_OF_WEEK
    • Número de día de la semana (1-7, siendo 1 = domingo) para obtener y configurar.
  • DAY_OF_WEEK_IN_MONTH
    • Número de día del la semana en el mes: Nos dice que número de día (lunes a domingo) es en el mes. Por ejemplo si hoy es lunes y es el tercer lunes del mes el resultado será 3.
  • DAY_OF_YEAR
    • Número de día en el año (1-365) para configurar y obtener.

  • WEEK_OF_MONTH
    • Número de semana dentro del mes (1-5).
  • WEEK_OF_YEAR
    • Número de semana dentro del año (1-54).
  • MONTH
    • Número de mes en el año (0-11) para obtener y configurar.
  • YEAR
    • Número de año para obtener y configurar.

Métodos Calendar

Tenemos varios métodos para trabajar con esas variables:

  • add(int field, int amount)
    • Le agrega o resta a un varible de calendario el número indicado basado en las reglas del calendario, Por ejemplo si al dia 31 le agregamos 5 miCalendario.add(Calendar.DAY_OF_MONTH, 5) el resultado será 5 y 36 porque ahi acaba el mes.
  • roll(int field, boolean up)
    • Añade o resta una sola unidad de tiempo a el entero "field" si la condición "up" es cierta, de lo contrario resta.
  • roll(int field, int amount)
    • Idem anterior solo que cuenta con la liberta de sumar o resta más de una unidad de tiempo con el indice "amount".
  • getInstance()
    • Obtiene un calendario utilizando la zona horaria predeterminada y la configuración regional.
  • set(int field, int value)
    • Configura a "field" por el valor de "value",
      • ej miCalenDar10.set(Calendar.MONTH, 6);
  • getTime()
    • Obtiene un objeto Date que representa los valores de un calendario
      • se ve una cosa como: Sun Oct 26 22:13:15 ART 2014
  • get(int field)
    • Obtiene el valor de una variable de calendar que le pasemos como parámetro.
      • Por ejemplo: miCalenDar10.get(Calendar.YEAR) se verá: 2014

Class GregorianCalendar

java.lang.Object
java.util.Calendar
java.util.GregorianCalendar

La clase GregorianCalendar es sub-clase de Calendar y también pertenece al paquete "util" por lo cual será necesario importarlo previamente antes de usarlo. Implementa Serializable, Cloneable, Comparable<Calendar> como interfaces.

Agrega 2 nuevas variables de clases además de las que hereda de Calendar:

  • AD
    • Valor del campo ERA indicando antes de cristo,
  • BC
    • Valor del campor ERA indicando después de cristo.

Herada y sobreescribe algunos de los métodos heredados pero agreda nuevos:

  • getGregorianChange()
    • Obtiene la fecha de cambio de GregorianCalendar.
  • isLeapYear(int year)
    • devuelve un booleando evaluado a si el año es bisiesto o no.
  • setGregorianChange(Date date)
    • Establece la fecha de cambio de GregorianCalendar. Este es el punto en el cambio de fechas julianas a fechas gregorianas. El valor predeterminado es 15 de octubre 1582 (gregoriano). Anterior a esto, las fechas serán en el calendario juliano.

No hay comentarios:

Publicar un comentario