Calcular o mes com duas datas String

3 respostas
P

Olá pessoal,

como poderia calcular a qtde de meses entre duas

datas e que elas são String em java.

Exemplo:

String dtVigFim =“31/12/2005”;
String dtVencPrimParc =“01/01/2005” ;

gostaria de saber a quantidade de meses pois estou acostumado em

fazer no banco de dados …

No exemplo acima seria 12 meses…

SELECT  Round( months_between(To_Date('31/12/2005','dd/mm/yyyy'), To_Date('01/01/2005','dd/mm/yyyy')) ,0)
FROM dual

Se alguem puder me ajudar agradeceria

abs

3 Respostas

GustavoLaguna

Procure pela classe Date e Calendar.

Javabuntu

os vários métodos static de Calendar estão ai pra isso…

amanda.cassab
import static org.junit.Assert.*;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import org.junit.Before;
import org.junit.Test;


public class TestCalendar {

	Date dataInicial;
	Date dataFinal;
	SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
	Calendar calendar = sdf.getCalendar();
	
	@Before
	public void criarDatas() {
		calendar.setTime(new Date());
		dataInicial = calendar.getTime();
		
		calendar.add(Calendar.MONTH, +1);
		dataFinal = calendar.getTime();
	}
	
	
	@Test
	public void testBefore (){
		assertTrue("Data inicial eh posterior a data final.", dataInicial.before(dataFinal));
	}
	
	@Test
	public void testAfter (){
		assertTrue("Data inicial eh posterior a data final.", dataFinal.after(dataInicial));
	}
	
	@Test
	public void testx() {
		assertEquals("Data final nao eh maior.", dataFinal.compareTo(dataInicial), 1);
		assertEquals("Data inicial nao eh igual a data inicial.", dataInicial.compareTo(dataInicial), 0);
		assertEquals("Data inicial nao eh menor.", dataInicial.compareTo(dataFinal), -1);
	}

}
Criado 25 de abril de 2008
Ultima resposta 25 de abr. de 2008
Respostas 3
Participantes 4