Duvida em trabalhar com data[RESOLVIDO]

12 respostas
everson_cardoso1

bom dia pessoal, eu to com duvidas com relação a data, seguinte eu tenho uma slider na minha tela que conta os dias de 0 a 365 e o que preciso fazer é o seguinte, pegar a data atual e somar ao valor vindo dessa slider da tela, alguém pode me dar uma luz?
vlw.

12 Respostas

nebster

vc poderia mostrar a base do codigo utilizada?

T
int nDias = ...;
Calendar cal = Calendar.getInstance(); // pega o dia de hoje
cal.add (Calendar.DATE, nDias); // soma a quantidade de dias
Date dt = cal.getTime(); // aqui está sua data
nebster

dê num parse na data convertendo para inteiro e depois some e apresente…

drsmachado

1 - Para obter a data atual, você tem algumas opções. As duas mais conhecidas são:

Date dataAtual = new Date();

e

Calendar dataAtualC = Calendar.getInstance();

Se você pretende apenas adicionar dias, sugiro que trabalhe com um objeto da classe Calendar. Ele possui os métodos add e roll e provavelmente possa ajudá-lo a resolver teu problema.
Se for trabalhar com um objeto de Date, terá alguns contratempos, como, obter a data atual em um valor long (o método getTime() faz isso, ele transforma a data - dia, mês e ano, horas, minutos, segundos e milissegundos - em um valor long) e, então, somar o valor, em long, do valor correspondente à quantidade de dias adicionada.

Vodga
cara, eu ultilizo este codigo pra ver quem esta de aniversario no dia de hj, talvez ajude a adaptar teu codigo

Classe MenuDAO

public List<Variavel> aniversariante() {
        try {
            List<Variavel> contatos = new ArrayList<Variavel>();

            String sql = "select count(*) as aniversario from cliente where day(nascimento) = day(now()) and month(nascimento) = month(now());";
            PreparedStatement stmt = this.conexao.prepareStatement(sql);
            ResultSet rs = stmt.executeQuery();
            Variavel v1 = new Variavel();
            while (rs.next()) {
                v1.setAniversario(rs.getInt("aniversario"));

                contatos.add(v1);
            }
            rs.close();
            stmt.close();
            return contatos;
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

Menu, Swing

public void aniversariante() throws SQLException {
        menuDao dao = new menuDao();
        List<Variavel> contatos = dao.aniversariante();
        for (Variavel v1 : contatos) {
            jTaniversariantesHoje.setText("000" + v1.getAniversario());

        }


    }

para dar um insert no banco eu uso isto:

stmt.setDate(11, new java.sql.Date(c1.getVencimento().getTime()));

acho que nao é oque vc quer, mas pode ajudar

everson_cardoso1

ei Thingol, tem como converter um TimeStamp para um int???
dei uma pesquisada rápida aqui no google e não encontrei…

Vodga

tenta usar o integer.parse int, algo assim, ser der deu, se nao der nao deu

drsmachado

everson cardoso:
ei Thingol, tem como converter um TimeStamp para um int???
dei uma pesquisada rápida aqui no google e não encontrei…

Está indo pelo caminho mais difícil.
De forma direta, não existe como converter um Timestamp para um int. Você precisará convertê-lo para um java.util.Date e, então, pode obter um valor long, através do método getTime() da classe Date.

drsmachado

Vodga:
tenta usar o integer.parse int, algo assim, ser der deu, se nao der nao deu

Integer.parseInt?
Está de brincadeira, não?

everson_cardoso1

a nível de curiosidade, drsmachado, convertendo é a melhor maneira(a mais elegante/correta) de se fazer?
porque se eu for converter ai tenho que converter pra Date depois pra Long e depois pra int pra chegar no passo que o Thingol sugeriu.
vo fazer aqui e ver o que da.
de qualquer forma vlw.

drsmachado

everson cardoso:
a nível de curiosidade, drsmachado, convertendo é a melhor maneira(a mais elegante/correta) de se fazer?
porque se eu for converter ai tenho que converter pra Date depois pra Long e depois pra int pra chegar no passo que o Thingol sugeriu.
vo fazer aqui e ver o que da.
de qualquer forma vlw.

E o que o thingol sugeriu não tem conversões?
E, o que eu comentei, é que você opta pelo caminho mais difícil (eu diria burro) ao ouvir a sugestão do vodga…
Veja que a sugestão do thingol é mais específica.

everson_cardoso1

ai galera eu fiz e fico assim,
espero que ajude os demais que procurarem.

ContratoDAO cDAO = new ContratoDAO();

		Timestamp dt1, dt2;
		
		Calendar cal = new GregorianCalendar();
		
		cal.add(Calendar.DAY_OF_MONTH, 5);
		
		dt1 = new Timestamp(cal.getTimeInMillis());
		
		cal.add(Calendar.DAY_OF_MONTH, dias);
		
		dt2 = new Timestamp(cal.getTimeInMillis());
		
		return cDAO.consultarPeriodo(dt1, dt2, "vencimento");
Criado 2 de julho de 2013
Ultima resposta 3 de jul. de 2013
Respostas 12
Participantes 5