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.
Duvida em trabalhar com data[RESOLVIDO]
12 Respostas
vc poderia mostrar a base do codigo utilizada?
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
dê num parse na data convertendo para inteiro e depois some e apresente…
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.
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
ei Thingol, tem como converter um TimeStamp para um int???
dei uma pesquisada rápida aqui no google e não encontrei…
tenta usar o integer.parse int, algo assim, ser der deu, se nao der nao deu
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.
tenta usar o integer.parse int, algo assim, ser der deu, se nao der nao deu
Integer.parseInt?
Está de brincadeira, não?
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.
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.
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");