Duvidas classe Date

5 respostas
N

bom gente tou querendo usar pela primeira vez a classe Date, trata-se de uma aplicação para um sistema de locação…
tem como com a classe Date eu fazer uma implementação q guarde o dia que o cliente locou o filme… e 3 dias depois acusar q o filme tem q ser entregue.
ex:
o cliente locou 14/01/2010… e implementar algum metodo q ja tpw some 3 dias… q dai no dia 17/01/2010 eu faço uma condicao para q apresente q o filme
tem q ser entregue… e outra coisa… o formato da data como q fica ?? pq no mysl o formato do campo DATE é ano-mes-dia…

desde ja obrigado ! e espero poder contar com vcs…

5 Respostas

Marck

Olá!

Voce pode criar um metodo que execute uma query e retorne as locações que vencem no dia. O metodo pode executar a seguinte query:

SELECT * FROM LOCACAO where DATE_FORMAT(date_add(DATALOC, interval 3 day), '%Y%m%d') = DATE_FORMAT(now(), '%Y%m%d')

Para formatar a data no Java, use a classe DateFormat.

abraço!

eliangela

A classe Date está deprecated, use a classe Calendar.

Para somar 3 dias à data na classe Calendar, faça assim:

Calendar cal = Calendar.getInstance(); System.out.println(cal.get(Calendar.DATE)); cal.add(Calendar.DAY_OF_MONTH, 3); System.out.println(cal.get(Calendar.DATE));

N

blz elisangela… tou seguindo suas dicas…
mas eu tava fazendo um teste com o ano e com o mes… entao onde tinha DATE substitui por YEAR…
e dps testei mes… onde tinha DATE substitui por MONTH… com o ano deu certo… mas com o mes… como nos estamos em janeiro
no lugar de retorna 1… ele retornou 0…

duvidas:
tem algum metodo q retorne o dia o mes e o ano ?? ou seja a data completa ?
e como eu converto pro formato do mysql… pq no mysql o campo date eh aaaa-mm-dd

mt obrigado pela ajuda e tenha um bom final de semana!!

N

bom pra ser mais especifico eu quero fazer o seguinte…
a pessoa vai entrar no sistema… e ja vai ser setado o dia de hj e o dia de devolução… q sao 3 dias depois…
tpw a pessoa acessa o sistema
ai ja vai ter nos textFields assim: 16/01/2010 e no outro 19/01/2010… nao necessariamente nesse formata com as barras entre o dia e o mes…
isso ai eu me viro pra fazer… mas contanto q me retorne a data completa de hj e a data completa de daqui ha 3 dias

M

Use Calendar mesmo. Para pegar as datas, ficaria algo como:

Calendar agora = Calendar.getInstance();
Calendar daquiTresDias = Calendar.getInstance();
// precisamos adiantar 3 dias:
daquiTresDias.add(Calendar.DAY_OF_MONTH, 3);

Pronto. Assim você já tem as datas de hoje e daqui três dias. Para mostrá-las formatada, use um DateFormat:

DateFormat format = new SimpleDateFormat("EEE, dd 'de' MMM");
System.out.println("Agora: " + format.format(agora.getTime()));
System.out.println("Daqui três dias: " + format.format(daquiTresDias.getTime()));

Para persistir a data no banco, use a classe java.sql.Date, juntamente com seu PreparedStatement. Por exemplo:

String sql = "insert into datas (retirada, devolucao) values (?, ?)";
PreparedStatement ps = con.prepareStatement(sql);
ps.setDate(1, new java.sql.Date(agora.getTimeInMillis()));
ps.setDate(2, new java.sql.Date(daquiTresDias.getTimeInMillis()));
Criado 14 de janeiro de 2010
Ultima resposta 18 de jan. de 2010
Respostas 5
Participantes 4