DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Data por Extenso em uma Aplicação Java

Veja neste artigo como definir uma data por extenso em uma aplicação Java através de funções implementadas para retornar o nome de um mês e o dia da semana. Também foram utilizados na aplicação de exemplo os recursos da linguagem para retornar a data do sistema operacional (java.util.Date()); para extrair os atributos dia, mês e ano de uma data (métodos getDate(), getMonth() e gerYear(), respectivamente); e, para retornar o dia da semana (Calendar.DAY_OF_WEEK).

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)




    2 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Abraao Francisco Da Silva
classe calendar fazia tudo isso com poucas linhas de codigo
[há +1 mês] - Responder

 

[autor] Omero Francisco Bertol
Olá Abraão,

Obrigado pelo seu comentário. Aceitando a sua sugestão refiz o método que retorna a data por extenso usando a classe Calendar:

// Calendar.getInstane = data do sistema operacional
System.out.printf("%s\n", DataPorExtenso(s,
Calendar.getInstance()));


public static String DataPorExtenso(String cidade,
Calendar dt) {
// retorna os valores dia, mês e ano da variável "dt"
int d = dt.get(Calendar.DATE);
int m = dt.get(Calendar.MONTH)+1;
int a = dt.get(Calendar.YEAR);

// retorna o dia da semana: 1=domingo, 2=segunda-feira,
// ..., 7=sábado
int ds = dt.get(Calendar.DAY_OF_WEEK);

return(cidade + ", " + d + " de " + NomeDoMes(m, 0) +
" de " + a + " (" + DiaDaSemana(ds, 1) + ").");
}

Por favor, se tiver mais alguma sugestão ficarei muito agradecido.

Um abraço.
[há +1 mês] - Responder
 



[Este post ainda não foi associado a uma sequência]
Publicidade
Autor
Omero Francisco Bertol

Técnico Mecânico pelo CEFET, Curitiba/PR. Tecnólogo em Processamento de Dados pela UEM, Maringá/PR. Especialista em Informática pela Universidade Federal do Paraná. Mestre em Informática Aplicada pelo Programa de Pós Graduação em Informática Aplicada da PUC, Curitiba/PR. Professor de Ensino Superior...


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03