sexta-feira, 30 de março de 2012

Cálculos com datas em JAVA

/* Dentro de um software de RH, na parte de datas de experiência, deve ser calculado 30 e 45 dias a partir de uma data inicial */
import java.text.SimpleDateFormat;
import java.util.Calendar;


/**
 *
 * @author Mario Cezzare Angelicola Chiodi mcezzare@gmail.com
 */

public class testeData {


    private static void calculaPeriodoExperiencia(String dataInicial,int periodo, int dias) {


        Calendar data1 = Calendar.getInstance();
        Calendar dataInicio = Calendar.getInstance();


        int dia, mes, ano;


        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        switch (periodo) {
            case 1:
                
                if (!"  /  /    ".equals(dataInicial)) {
                    String tmpData[] = dataInicial.split("\\/");
                    dia = Integer.parseInt(tmpData[0]);
                    mes = Integer.parseInt(tmpData[1]) - 1; // aqui passo -1 
                    ano = Integer.parseInt(tmpData[2]);


                    dataInicio.set(ano, mes, dia);
                    data1.set(ano, mes, dia);
                    data1.add(Calendar.DAY_OF_WEEK, dias);
                    System.out.println("inicio: " + sdf.format(dataInicio.getTime()));
                    System.out.println(dias + " : " + sdf.format(data1.getTime()));
                }


                break;
                // case 2 , se forem outros campos texto no form
        }
    }


    public static void main(String args[]) {
        String dataInicial = "01/01/2000";
        calculaPeriodoExperiencia(dataInicial,1, 29); // q são 30 dias , mas conta a data inicio
        calculaPeriodoExperiencia(dataInicial,1, 44);// q são 45 dias , mas conta a data inicio
    }
}



saida :
inicio: 01/01/2000

29 : 30/01/2000
inicio: 01/01/2000
44 : 14/02/2000