Olá caros amigos, em meus estudos me deparei com um exercicio em que tenho que pegar a data atual e subtrair de uma data dada pelo usuario
e o programa tem que devolver o resultado da subtração entre a data atual e a data que o usuario digitou. Por exemplo a data de hoje é 02/05/2012,
se o usuario digitasse 05/05/2012 o resultado deveria ser 3 dias.
Infelizmente o programa não funciona corretamente (na verdade estou nesse programa faz um mês):
import java.util.Calendar;
import java.util.Scanner;
/*
* Elabore um programa em Java que mostre ao usuário a quantidade de
* dias que faltam para uma data a ser inserida pelo usuario e a data atual
*
*
*/
public class ContagemRegressiva {
private String data, dia, mes, ano;
//exibindo a data
public String getData(){
return data;
}
//setando a data
public String setData(){
Scanner ler = new Scanner(System.in);
System.out.println("Digite a data desejada no formato dd/mm/aaaa");
System.out.println("-------------------------------------------->");
this.data = ler.nextLine();
return data;
}
//construtor sem parametros
public ContagemRegressiva(){
data = dia = mes = ano = "";
}
//exibe a data atual
public void DataAtual(){
Calendar data = Calendar.getInstance();
System.out.println(data.getTime());
}
//exibe quantos dias faltam para o ano que o usuario escolher
public void ContarData(){
this.data = setData();
String[] d = data.split("/");
//fragmentando a data
for(int i = 0; i < d.length; i++){
dia = d[0];
mes = d[1];
ano = d[2];
}
//System.out.println(data);
Calendar data1 = Calendar.getInstance();
Calendar data2 = Calendar.getInstance();
data1.get(Calendar.DAY_OF_MONTH);
data1.get(Calendar.MONTH);
data1.get(Calendar.YEAR);
data2.set(Calendar.DAY_OF_MONTH, Integer.parseInt(dia));
data2.set(Calendar.MONTH, Integer.parseInt(mes));
data2.set(Calendar.YEAR, Integer.parseInt(ano));
long d1 = data1.getTimeInMillis();
long d2 = data2.getTimeInMillis();
System.out.println("N° dias: " + (int)((d2 - d1)/ (24*60*60*1000)));
}
public static void main(String[] args) {
// TODO Auto-generated method stub
ContagemRegressiva DA = new ContagemRegressiva();
DA.DataAtual();
DA.ContarData();
}
}