Manipulação de data e melhorias no codigo

3 respostas
jfv83

Olá pessoal,
sou iniciante em Java e gostária de saber se a forma como codifiquei essa brincadeira abaixo é passível de melhorias.
O que fiz abaixo é gambiarra? Como posso fazer melhor?

Abraços

Codigo:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class Main
{

    public static void main(String[] args)
    {

        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        Date d = null;
        try {
           d = sdf.parse("27/10/1988");
        } catch (ParseException ex) {
            ex.printStackTrace();
        }


        GregorianCalendar gc = new GregorianCalendar();
        gc.setTime(d);

        System.out.println("Dia = " + gc.get(Calendar.DAY_OF_MONTH));
        System.out.println("Mes = " + (gc.get(Calendar.MONTH) + 1));
        System.out.println("Ano = " + gc.get(Calendar.YEAR));
        

    }
}

3 Respostas

T

Até aí não há nada de estranho. Provavelmente você vai começar a encontrar dificuldades quando tiver de manipular datas, como é o caso de “qual é a diferença entre duas datas, em dias?” ou outras coisas mais escabrosas. Se você precisar de tais coisas, aprenda a usar o Joda-Time ( http://joda-time.sourceforge.net/ ).

natureza

Eu faria assim não sei se está correto.

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;


public class Teste {

	public static void main(String[] args) {
	
		Calendar cal = GregorianCalendar.getInstance();
		cal.setTime(new Date(88,9,27));
		System.out.println("Dia = " + cal.get(Calendar.DAY_OF_MONTH));
		System.out.println("Mês = " + cal.get(Calendar.MONTH));
		System.out.println("Ano = " + cal.get(Calendar.YEAR)); 
	}
}

Abraço

jfv83

Assim da certo também e acho que é melhor e mais limpo.
O único problema é que o constructor do Date é deprecated…

Fiz umas mudanças no seu codigo e ficou assim, seguindo a substituição dos métodos indicada na documentação do java…

É isso ai pessoal,
valeu.

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;


public class Main {

  public static void main(String[] args) {

      //Date d = new Date

         Calendar cal = GregorianCalendar.getInstance();
         cal.set(1983, 11, 27);
         System.out.println("Dia = " + cal.get(Calendar.DAY_OF_MONTH));
         System.out.println("Mês = " + cal.get(Calendar.MONTH));
         System.out.println("Ano = " + cal.get(Calendar.YEAR));
     }  
 }
Criado 22 de julho de 2009
Ultima resposta 22 de jul. de 2009
Respostas 3
Participantes 3