Pretendo demonstrar neste artigo uma aplicação Java para definir uma data por extenso obtendo como resultado, por exemplo: Pato Branco, 6 de janeiro de 2012 (sexta-feira).
Implementar a classe principal Java Exemplo como demonstrado a seguir:
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Scanner;
public class Exemplo {
public static void main(String[] args) {
Scanner ler = new Scanner(System.in);
String s;
System.out.printf("Informe o nome da Cidade:\n");
s = ler.nextLine();
System.out.printf("\nResultado:\n");
// new java.util.Date = data atual (data do sistema operacional)
System.out.printf("%s\n", DataPorExtenso(s, new java.util.Date()));
}
// Retorna o nome do mês.
// Parâmetros: "i" = índice para o vetor "mes"
// "tipo" = 0 para retornar o nome completo e
// 1 para o nome abreviado do mês.
public static String NomeDoMes(int i, int tipo) {
String mes[] = {"janeiro", "fevereiro", "março", "abril",
"maio", "junho", "julho", "agosto", "setembro", "outubro",
"novembro", "dezembro"};
// Java é uma linguagem com vetores zero-based: as posições do vetor
// iniciam a numeração a partir do valor 0 (0-janeiro, 1-fevereiro, ...)
if (tipo == 0)
return(mes[i-1]); // extenso
// o método "substring" retorna os 3 primeiros caracteres de "mes[i-1]"
else return(mes[i-1].substring(0, 3)); // abreviado
}
// Retorna o dia da semana.
// Parâmetros: "i" = índice para o vetor "diasem"
// "tipo" = 0 para retornar o nome completo e
// 1 para o nome abreviado do dia da semana.
public static String DiaDaSemana(int i, int tipo) {
String diasem[] = {"domingo", "segunda-feira", "terça-feira",
"quarta-feira", "quinta-feira", "sexta-feira", "sábado"};
if (tipo == 0)
return(diasem[i-1]); // extenso
// o método "substring" retorna os 3 primeiros caracteres de "diasem[i]"
else return(diasem[i-1].substring(0, 3));
}
// Retorna a data por extenso.
// Parâmetros: "cidade" = nome da cidade; e, "dt" = data.
public static String DataPorExtenso(String cidade, java.util.Date dt) {
// retorna os valores ano, mês e dia da variável "dt"
int d = dt.getDate();
int m = dt.getMonth()+1;
int a = dt.getYear()+1900;
// retorna o dia da semana: 1=domingo, 2=segunda-feira, ..., 7=sábado
Calendar data = new GregorianCalendar(a, m-1, d);
int ds = data.get(Calendar.DAY_OF_WEEK);
return(cidade + ", " + d + " de " + NomeDoMes(m, 0) + " de " +
a + " (" + DiaDaSemana(ds, 1) + ").");
}
}
Ao executar a aplicação deve-se informar o nome da cidade e pressionar Enter e o seguinte resultado será exibido:
Os métodos implementados: NomeDoMes, DiaDaSemana e DataPorExtenso, poderiam ser disponibilizados em um pacote (package). Os pacotes representam no Java a forma de disponibilizar um conjunto de métodos destinados a solucionar uma série de tarefas bastante corriqueiras com o propósito da "reutilização de código".
Veja também:
1) Data por Extenso em uma Aplicação Delphi
2) O que são vetores: Vetores em Java - Parte 1
3) Trabalhando com vetores: Vetores em Java - Parte 2
4) Matrizes: Vetores em Java - Parte 3
5) Trabalhando com string: String em Java - Parte 1
6) Métodos da Classe String: String em Java - Parte 2
7) Métodos da Classe Character: String em Java - Parte 3
Obrigado e um abraço.
Prof. Omero Francisco Bertol (http://www.pb.utfpr.edu.br/omero/)
Aplicações Java (http://www.pb.utfpr.edu.br/omero/Java/Fontes.HTM)