Olá amigos,
No meu aplicativo eu uso duas JTextField , a T1 e a T2. Em cada uma eu digito uma data, no formato 12/07/2006, sendo que a data da T2 é sempre uma data posterior a data digitada na T1.
Eu preciso calcular o número de dias entras as duas datas. Deve existir algum método que faça isso, mas eu não conheço. Se alguém souber como se faz pra calcular o número de dias existente entre duas datas, e puder me ajudar, eu agradeço muito.
Marco
SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
Date d1 = formatador.parse(t1.getText());
Date d2 = formatador.parse(t2.getText());
long dias = (d2.getTime()-d1.getTime())/(1000*60*60*24);
System.out.println(dias);
Ao Jair Elton,
Está dando um erro, que eu acho que é porque para usar a SimpleDateFormat, como você sugeriu, é preciso importar alguma classe lá no topo do código, será que é isso:
import java.DateFormat.*;
Ou não tem nada há ver?
Marco
import java.text.SimpleDateFormat;
import java.util.Date;
E tem que tratar a exceção ParseException que é lançada pelo metodo parse().
Ao Jair Elton,
Fiz as modificações , importando as duas classes acima, e tudo bem, foi acertado, parece que funcionou, mas existe apenas uma questão, no seu código você fez uma saída para console (quero dizer Prompt DOS), mas eu estou usando swing e necessito uma saída para uma JTextField T3.
No meu código eu já tinha preparado:
JTextField T1 = new JTextField();
JTextField T2 = new JTextField();
JTextField T3 = new JTextField();
A T1 e a T2 recebem as datas como entrada, e a T3 é para colocar a saída com o número de dias que será calculado. Está tudo funcionando.
Então, ao final do seu código você fez assim:
long dias = (d2.getTime()-d1.getTime())/(1000*60*60*24);
System.out.println(dias);
e eu precisei modificar para isso:
long dias = (d2.getTime()-d1.getTime())/(1000*60*60*24);
T3.setText(dias);
Mas está dando erro dizendo que o tipo long não aceita ser usado em T3, estranho isso. Se você souber o que pode estar acontecendo, e me ajudar, agradeço, Jair.
Abraços,
Marco
Ao Jair Elton,
Meu problema principal está na mensagem anterior, mas eu fiquei em dúvida porque você usou isso em seu código:
SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
E eu estou em dúvida se aquele MM é em maiúscula mesmo, ou em minúscula, assim:
SimpleDateFormat formatador = new SimpleDateFormat("dd/mm/yyyy");
Só isso.
Abraço,
Marco
[quote=“MarcoSenn”]
long dias = (d2.getTime()-d1.getTime())/(1000*60*60*24);
T3.setText(dias);
Mas está dando erro dizendo que o tipo long não aceita ser usado em T3, estranho isso. Se você souber o que pode estar acontecendo, e me ajudar, agradeço, Jair.
Abraços,
Marco[/quote]
Vc tem que converte o long para string T3.setText(String.valueOf(dias));
Um abraço.
seria legal acrescentar 1 hora naquela subtração para casos em que exista horario de verao no intervalo das datas ele mostrar um valor incorreto.
long dias = ( (d2.getTime()-d1.getTime()) + (1000*60*60*1) ) / (1000*60*60*24);
acho q é isso… se nao for eu corrijo aqui!!!
quais import devo colocar…
import java.text.SimpleDateFormat;
import java.util.Date;
coloquei esses dois e continua dando erro…
tb estou precisando dessa funçao… ajudam ae…
please…
qual a mensagem do erro que está dando ?