Calendar es una clase de Java que permite manejar fechas de una manera distinta de
como lo hace Date.
Lo primero es importar la clase Calendar.
import [Link];
Hay dos maneras de crear un objeto calendar:
Calendar fecha1 = [Link]();
[Link](2016, 6, 3);
Calendar fecha2 = new GregorianCalendar(2016,7,5);
La primera forma es usando [Link](). Importante, no se puede hacer new
Calendar(); al tratarse de una clase abstracta.
Despues de crearlo, se puede usar el método set para fijar los valores año, mes y dia.
La segunda forma es usando otra clase llamada GregorianCalendar que es hija de
Calendar, que sí permite hacer un new GregorianCalendar. Para importar la clase
GregorianCalendar
import [Link];
También se puede añadir la hora, minuto y segundo en los parámetros.
Para mostrar la fecha como se hace con Date, se requiere usar el método getTime().
Calendar fecha1 = [Link]();
[Link](2016, 6, 3, 10, 5, 6);
[Link]([Link]());
Se verá esto:
En Calendar, podemos modificar cada elemento de la siguiente forma:
Calendar fecha1 = [Link]();
[Link]([Link], 2014);
[Link]([Link], 10);
[Link]([Link], 20);
Simplemente, hay que indicar qué campo se debe modificar (año, mes, dia, etc) y el
valor a modificar. Para el nombre del campo, necesitamos usar las constantes de
Calendar, que pueden consultarse en la API.
También se pueden mostrar campos concretos con el campo get.
Calendar fecha1 = [Link]();
[Link]([Link], 2014);
[Link]([Link], 10);
[Link]([Link], 20);
[Link]("Año: "+[Link]([Link]));
[Link]("Mes: "+[Link]([Link]));
[Link]("Dia: "+[Link]([Link]));
[Link]([Link]());
Esto es lo que se ve:
Hay que tener en cuenta que los meses empiezan en 0, por lo que el mes 10 es
noviembre.
Se pueden añadir días, meses, años, horas, etc a una fecha en concreto. Para ello, hay
que usar el método add, indicamos el campo a añadir y la cantidad que le añadimos. Por
ejemplo:
Calendar fecha1 = [Link]();
[Link]("Fecha de hoy: "+[Link]());
[Link]([Link], 2);
[Link]("Fecha 2 dias mas: "+[Link]());
En Calendar también se pueden usar los métodos before y after.
Esto nos indica si una fecha esta después o antes que otra.
[Link]([Link](fecha2));
[Link]([Link](fecha2));
El método roll tiene un funcionamiento curioso. Es como add, solo que cuando un
campo llega la limite no se modifica los otros. Por ejemplo, si aumentamos 22 dias a
una fecha y esta llega a mas de 31, el mes no aumentará.
Calendar fecha1 = [Link]();
[Link]("Fecha de hoy: "+[Link]());
[Link]([Link], 28);
[Link]("Fecha añadiendo 28 dias: "+[Link]());