Caros Amigos,

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)