trabalhando com datas

12/10/2006

1

Olá pessoal e sou muito leigo em java, então eu gostaria de implementar o código abaixo para que a (data1) e (data2) sejam digitadas por um usuario.

Se puderem me ajudor ficarei muito grato!

Calendar data1 = new GregorianCalendar();
Calendar data2 = new GregorianCalendar();

data1.set(1979, Calendar.MARCH, 1, 0, 0, 0);
data2.set( 2006, Calendar.APRIL, 2, 0, 0, 0 );

long time = data2.getTime().getTime() - data1.getTime().getTime();
long days = Math.round( (double)time / (24. * 60.*60.*1000.) );
System.out.println( days );


Responder

Posts

03/11/2006

Lordalmma

Considerações:
-----------------
1 - Existem dois campos JTextField nos quais o usuário irá digitar a data no formado ´dd/mm/aaaa´. Isso é responsabilidade sua de verificar através de funções como substring(), etc...
2 - Esses campos se chamam textFieldData1 e textFieldData2
3 - Lembre-se que o mes em um GregorianCalendar é o número real do mês - 1 (ou seja, Janeiro corresponde a 0 e nao a 1). Por isso no código eu tenho q subtrair 1 do número digitado.

---------------------------------------
GregorianCalendar data1 = new GregorianCalendar();
GregorianCalendar data2 = new GregorianCalendar();

String []data = new String[3];
data = textFieldData1.split(´/´);
data1.set(data[2], data[1] - 1, data[0]);

data = textFieldData2.split(´/´);
data2.set(data[2], data[1] -1, data[0]);
---------------------------------------

Esta é uma base. Em cima disso você pode usar sua criatividade e tentar usar uma função, na qual você passa o componente JTextField (eu já tive problemas tentando passar apenas o texto dele) e retorna um GregorianCalendar, de forma que você possa reutilizar mais facilmente este código^^

Inclusive pode posteriormente subir a hora na sua data, e essa pode ser inicialmente separada da data em si, através do split(´:´, 2). Com isso você obtém 2 Strings, uma com a data, outra com a hora. Em cima delas você faz o restante da divisão^^

É apenas uma sugestão também. Eu usei assim algumas vezes e funcionou...


Responder