terça-feira, 9 de abril de 2013

Como transformar data em um vetor de caracteres? | Dica - Manipulação de Datas - Java


Olá, neste post vou mostrar uma dica sobre a manipulação de datas que temos na plataforma Java. Primeiramente, observe o código a seguir:


import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DataVetor{

 public static void main(String[] args) {


DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
Date date = new Date();


String Data=dateFormat.format(date);

System.out.println(Data);

     }
}

Para manipularmos datas , logicamente necessitaremos de obter uma data, e no exemplo acima obtivemos a data da máquina na qual você está implementando o código. O código mostra que é necessário importar algumas bibliotecas próprias do Java, e elas são:


import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

Em seguida, implementamos o código com as bibliotecas que importamos:


DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
Date date = new Date();

Aqui acontece, a captura da data do sistema, onde você especifica em qual formato deseja que seja o retorno da data. No exemplo, eu coloquei ("yyyy/MM/dd"), ou seja, a data será apresentada assim Ano/Mês/Dia, entretanto, você pode definir de que maneira deseja que a data seja apresentada, como por exemplo dessa forma:

DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");

Depois de escolher a maneira que se deseja receber a data, o próximo passo será armazenar ela em uma variável, e certificar-se que a data veio da maneira correta:


String Data=dateFormat.format(date);

System.out.println(Data);

Se você conseguiu visualizar da maneira como especificou ao executar a aplicação, Parabéns! Você já tem uma data para brincar =D

Agora vamos transformar essa data em um vetor:

char[] dataVetor = Data.toCharArray();

Pronto, agora temos um vetor do tipo caracter que armazenou cada índice da variável "Data" que era do tipo String. Entretanto, eu quero manipular os números que a data indica, e não quero pegar nenhuma barra que tem separando esses números. Como eu faço isso? Veja:

char[] dataVetor = Data.toCharArray();

String dia=dataVetor[0]+""+dataVetor[1];
String mes=dataVetor[3]+""+dataVetor[4];
String ano=dataVetor[6]+""+dataVetor[7]+""+dataVetor[8]+""+dataVetor[9];

Vamos entender o que aconteceu anteriormente:

O comando char[] dataVetor = Data.toCharArray(); transformou o que estava na variável "Data", ou seja, "dd/MM/yyyy", em um vetor de caracteres.

Em seguida, criamos a variável "dia" recebendo os dois primeiros índices do vetor, onde já podemos notar que estava inserido o dia da data. Depois fizemos o mesmo com o mês, mas pulando um índice, pois, o que está no dataVetor[2] é uma barra. O mesmo acontece com o ano.

Agora sim! Conseguimos separar os valores! Mas espera ae, as variáveis são do tipo String, assim não posso comparar com outros números =(

Então vamos converter para inteiro:

int Dia=Integer.parseInt(dia);
int Mes=Integer.parseInt(mes);
int Ano=Integer.parseInt(ano);

Pronto, agora é só manipular os números da maneira como desejar. Ué espera ae, para o que serve esse código todo? Resposta: Com isso é possível comparar determinadas datas, por exemplo, data de vencimento de produtos, prazos, idades e etc...

Agora eu quero juntar tudo isso:

String dataJunta=Dia+"/"+Mes+"/"Ano;

Com isso eu finalizo o post, qualquer dúvida só falar. E não esqueçam de conferir o que tem no nosso Canal

Até a próxima.

Nenhum comentário:

Postar um comentário