sábado, 17 de maio de 2014

Date Calendar

Teoria


O tempo no java é contado por milissegundos. Imagine quando temos que fazer a comparação de duas datas, por exemplo “02/05/2012 às 13:00:00” e “02/09/2013 às 15:32:00”, basta olharmos e identificamos o que ocorreu primeiro mas e o computador?! Ele teria que analisar dia por dia, mês por mês e assim por diante desperdiçando processamento. Esses milissegundos começaram a ser contados a partir do dia 01/01/1970, caso a data seja anterior a essa ela terá um valor negativo.  
Durante muito tempo na programação java a única classe utilizada para a manipulação de datas foi a classe Date, porém com o tempo e consequente a evolução da linguagem a classe Date também evoluiu, assim sendo criada a classe Calendar (atualmente a classe Date está praticamente em desuso). 
A classe Calendar é uma classe abstrata (ela não pode ser instanciada) contida no pacote java.util que possibilita a conversão e manipulação de datas através de métodos nela contidos. Diferente da classe Date, a classe Calendar nos dá a possibilidade de criarmos diferentes tipos de calendários além do gregoriano, apesar de ser o calendário mais utilizado no mundo.



Criando um novo calendário

Assim como citado no texto a classe calendar é uma classe abstrata, ou seja, não pode ser instanciada, portanto para obter um calendário é necessário usar o método estático getInstance( ) ou através do método new GregorianCalendar( ).

Exemplos de recuperação de data com a classe Calendar:


Conversão

Às vezes é preciso transformar um texto em uma data ou vice versa, para isso abaixo é exibida a função parse e a classe SimpleDateFormat. Geralmente a classe SimpleDateFormat é mais usada quando se trata de formatação de datas, pois já no seu construtor, quando instanciada, permite passar como argumento o formato da data desejada.


Formatação

Para a formatação é utilizada a classe DataFormat que permite a conversão entre dados tipo String para dados do tipo date ("ou vice versa") permitindo seguir um formato, por ser também uma classe abstrata e necessário usar o método getInstance( ).


Métodos Principais


Get e Set

Utilizamos os métodos set e get para inserir ou recuperar informações, respectivamente. No exemplo abaixo definimos uma data: 19/03/2010 (IMPORTANTE: o mês é contado a partir do 0 sendo assim o mês "02" no programa é referente ao mês de março "03") e uma hora qualquer apenas para recuperá-las através do método get.
Abaixo estão os principais métodos get para recuperação da data e das suas unidades.

Entrada

Saída



Roll


Utilizamos o método roll quando queremos manipular uma unidade de data sem que as outras sejam alteradas. No exemplo abaixo, estamos na data 18/05/2014 e adicionamos 10 dias a ela, então passou a ser 28/05/2014, ao adicionarmos mais 10 dias, a data ficou 07/05/2014, pois, ao chegar no máximo de dias do mês a contagem reinicia sem que o mês seja alterado.




Add


Utilizamos o método add quando queremos manipular uma data por completo podendo adicionar ou subtrair unidades de data, assim modificando a data inteira.


Entrada
Saída



Exercícios

1-  Por que a classe Calendar não pode ser instanciada? 

2-  Quando utilizamos o método roll e quando utilizamos o metodo add?

3-  Faça um programa que receba uma data qualquer em Calendar (não podendo ser a data atual) e exiba. Depois some 3 anos a essa data e exiba novamente.


4-  Faça um programa que receba uma data qualquer em Calendar e exiba essa mesma data no formato original e no formato dd/mm/aaaa.

Resolução

Referências

http://www.devmedia.com.br/trabalhando-com-as-classes-date-calendar-e-simpledateformat-em-java/27401

http://www.tutorialspoint.com/java/util/java_util_calendar.htm

http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html

Caso queira complementar seus estudos, abaixo está um vídeo sobre o que as classes Date e Calendar.



Integrantes

Matheus Vassoler - rm72210
Erick Pereira - rm72434
Yuri Campos - rm72384


Nenhum comentário:

Postar um comentário