Número de dias entre duas datas

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 ?