Como separar a data digitada pelo usuário?

Estou com um probleminha aqui. O usuário irá digitar duas datas, e o programa fará o calculo de diferença de dias de um data para outra, até aí tudo certo, mas, mais para frente preciso dessas datas separadas, precisarei usar apenas os dias, e depois a quantidade de dias naquele mês digitado.
Não quero criar mais entradas para o usuário, apenas utilizar as duas já existentes. Abaixo o código que já tenho.
`public class Calculo {

Scanner entrada = new Scanner(System.in);

public void calculaDatas() throws ParseException {

	DateFormat data1 = DateFormat.getDateInstance();
	DateFormat data2 = DateFormat.getDateInstance();

	// ENTRADA DA DATA DE CONTRATAÇÃO
	System.out.print("Digite a data de admissão: ");
	String dataEntrada = entrada.next();

	// ENTRADA DA DATA DE DEMISSÃO
	System.out.print("Digite a data de demissão: ");
	String dataSaida = entrada.next();

	// FORMATAÇÃO DE STRING PARA DATA
	// O CONTRARIO TAMBÉM É POSSÍVEL
	Date dataE = data1.parse(dataEntrada);
	Date dataS = data2.parse(dataSaida);

	// EFETUA SUBTRAÇÃO DE DATAS, DEPOIS CONVERTE OS
	// MILESEGUNDOS PARA DIAS
	long result = dataS.getTime() - dataE.getTime();
	long difDias = (result / 1000) / 60 / 60 / 24;

	System.out.println(difDias);
}`

Usa a api JodaTime
Segue o exemplo que você quer

     //exemplo do uso do metodo
     DateTime start = new DateTime(2004, 12, 25, 0, 0, 0, 0);
     DateTime end = new DateTime(2006, 1, 1, 0, 0, 0, 0);
     Days.daysBetween(start.toLocalDate(), end.toLocalDate()).getDays()

    //exemplo da diferença entre as datas, devolvendo os dias do intervalo 
    DateTimeZone belem = DateTimeZone.forID("America/Belem");
    DateTime start = new DateTime(2016, 2, 2, 5, 0, 0, belem);
    DateTime end = new DateTime(2016, 2, 25, 13, 0, 0, belem);
    System.out.println(Days.daysBetween(start.toLocalDate(),
                           end.toLocalDate()).getDays());
2 curtidas

Nunca usei o JodaTime mas vou dar uma pesquisada. Valeu.

2 curtidas