Ordenação de Datas

2 respostas
B

Fala Galera , sou iniciante em java , e como da para perceber possuo dúvidas em relação a ordenação de datas , já pesquisei bastante coisa sobre o assunto , porém muita coisa acabou me confundindo...

Minha dúvida é a seguinte : eu possuo uma classe chamada Lancamento que possui um variavel do tipo date, porém gostaria de saber como instanciar esse atributo na minha classe TestConta ( eu posso instanciar um atributo do tipo date ? )

obs : se eu colocar essa variavel do tipo String ela funciona numa boa , porém quando vou comparar eu consigo apenas comparar os dias e não consigo comparar a data como uma toda (comparar dias,meses,anos)

Eu li sobre transformar data para String , porém não conseguir implementar da forma que eu quero , se alguém me ajudar aonde está o erro , Agradeço desde já e desculpa se a forma que eu escrevi está meio confuso

Segue minhas classes :

import java.util.Date;

public class Lancamento {
	
	Date data;
	Double valor;
	
	public Lancamento() {
		// TODO Auto-generated constructor stub
	}

	public Lancamento(Date data, Double valor) {
		super();
		this.data = data;
		this.valor = valor;
	}




	public Date getData() {
		return data;
	}
	public void setData(Date data) {
		this.data = data;
	}
	public Double getValor() {
		return valor;
	}
	public void setValor(Double valor) {
		this.valor = valor;
	}
	@Override
	public String toString() {
		return "Lancamentos [data=" + data + ", valor=" + valor + "]";
	}
		
}

Class : LancamentoComparator

import java.util.Comparator;

public class LancamentoComparator implements Comparator<Lancamento>  {

	
	    public int compare(Lancamento lancamento, Lancamento outroLancamento) {
	        return lancamento.getData().compareTo(outroLancamento.getData());
	    }
	}

Class : TestLancamento

import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;





import org.junit.After;
import org.junit.Before;
import org.junit.Test;

/**
 * The test class TestConta.
 *
 * @author  (your name)
 * @version (a version number or a date)
 */
public class TestConta
{

    @Test
    public void testOrdenarLancamento()
    {
        
    	Lancamento lancamento1 = new Lancamento(); // nao consigo instanciar a data , se for do tipo String funciona numa boa , porém ao ordenar , ela ordena somente os dias e nao a data como uma toda 
    	Lancamento lancamento2 = new Lancamento();
        Lancamento lancamento3 = new Lancamento();
 
        List<Lancamento> lista = new ArrayList<Lancamento>();
        lista.add(lancamento1);
        lista.add(lancamento2);
        lista.add(lancamento3);
        
        javax.swing.JOptionPane.showMessageDialog(null, lista);
        
        LancamentoComparator comparator = new LancamentoComparator();
        Collections.sort(lista, comparator);
        
        javax.swing.JOptionPane.showMessageDialog(null, lista);
    }
}

2 Respostas

P

Aqui tem um método que converte string para date, caso te ajude:

public class VerificaData {
	public Date transformaData(String data) {
		Date retorno = null;
	
		try {
			retorno = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss")
	        .parse(data);
		} catch (ParseException ex) {
			throw new RuntimeException(ex);
		}

		return retorno;
	}
}

da para pegar data e fazer o que quiser depois... use esse método que te ajudará... abs

E

Tem outro método também, usando newDateTime();

private Date data; new DateTime(pagamentoVO.getData()).toString("yyyyMMdd")

Criado 15 de outubro de 2014
Ultima resposta 16 de out. de 2014
Respostas 2
Participantes 3