Por quê não dá certo?

4 respostas
O

E aí,

Declarei uma <String data1> que é a entrada de uma data, em uma JOptionPane… para eu poder comparar as datas, eu fiz o seguinte:
Separei a data digitada em posições

char pos1=data1.charAt&#40;9&#41;; char pos2=data1.charAt&#40;8&#41;; char pos3=data1.charAt&#40;7&#41;; char pos4=data1.charAt&#40;6&#41;; char pos5=data1.charAt&#40;4&#41;; char pos6=data1.charAt&#40;3&#41;; char pos7=data1.charAt&#40;1&#41;; char pos8=data1.charAt&#40;0&#41;;

Depois para separar o dia, o mês e o ano, fiz isso

String dia1=pos8+pos7; String mes1=pos6+pos5; String ano1=pos4+pos3+pos2+pos1;

Depois converti para inteiro para poder comparar

int dia1data1=Integer.parseInt&#40;dia1&#41;; int mes1data1=Integer.parseInt&#40;mes1&#41;; int ano1data1=Integer.parseInt&#40;ano1&#41;;

Depois fui fazendo as comparações

if&#40;ano1data1&gt;ano2data2&#41;....

Está dando errado.
Como concateno os valores das posições?
Quando separei as posições, ficou assim, sem a barra que é digitada junto com a data:
//pos1=“5”, pos2=“0”, pos3=“0”, pos4=“2”, pos5=“3”,pos6=“0”,
//pos7=“3”, pos8=“2”

Este metodo que eu estou fazendo pode funcionar?
Valeu[/b]

4 Respostas

R

e aê !

Não manjo muito de Java e ainda nem trabalhei com data, porém, acredito que este artigo possa te ajudar

http://www.guj.com.br/java.artigo.8.1.guj

flw e espero que ajude

Roger

P

Olá…

Me parece que sua lógica está correta… Você postou o resultado real, mas qual era o resultado esperado? Quais eram os valores q deveriam ter ficado nas posições?

Abs :slight_smile:

P

Andei dando uma brincada com o código... Vê se dá pra aproveitar alguma coisa...

private void dataDecompositor&#40;&#41;&#123;
		String data1 = &quot;21/03/2465&quot;;
		
		System.out.println&#40;&quot; data inicial&#58; &quot;+data1&#41;;
		
		char pos1=data1.charAt&#40;9&#41;; 
		char pos2=data1.charAt&#40;8&#41;; 
		char pos3=data1.charAt&#40;7&#41;; 
		char pos4=data1.charAt&#40;6&#41;; 
		char pos5=data1.charAt&#40;4&#41;; 
		char pos6=data1.charAt&#40;3&#41;; 
		char pos7=data1.charAt&#40;1&#41;; 
		char pos8=data1.charAt&#40;0&#41;;           

		System.out.println&#40;&quot;A &#40;&quot;+pos1+&quot;,&quot;+pos2+&quot;,&quot;+pos3+&quot;,&quot;+pos4+&quot;,&quot;+pos5+&quot;,&quot;+pos6+&quot;,&quot;+pos7+&quot;,&quot;+pos8+&quot;&#41;&quot;&#41;;

		String dia1=String.valueOf&#40;pos8&#41;+String.valueOf&#40;pos7&#41;; 
		String mes1=String.valueOf&#40;pos6&#41;+String.valueOf&#40;pos5&#41;; 
		String ano1=String.valueOf&#40;pos4&#41;+String.valueOf&#40;pos3&#41;+String.valueOf&#40;pos2&#41;+String.valueOf&#40;pos1&#41;; 
		
		System.out.println&#40;&quot;B nova data&#58; &quot;+dia1+&quot;-&quot;+mes1+&quot;-&quot;+ano1&#41;;

		int dia1data1=Integer.parseInt&#40;dia1&#41;; 
		int mes1data1=Integer.parseInt&#40;mes1&#41;; 
		int ano1data1=Integer.parseInt&#40;ano1&#41;; 
		
		System.out.println&#40;&quot;C nova data&#58; &quot;+dia1data1+&quot;-&quot;+mes1data1+&quot;-&quot;+ano1data1&#41;;

	&#125;
O

Valeu pela dica Roger!
Patty, valeu também, na verdade são duas datas de entrada, o programa calcula a maior.
Ex.:
Entra a data1: 25/03/2005
Entra a data2: 14/08/1982
O resultado deve ser a data1.

Brincando com meu código você me ajudou bastante!

Criado 23 de março de 2005
Ultima resposta 25 de mar. de 2005
Respostas 4
Participantes 3