Calcular dias da semana no Java

06/01/2016

2

Pessoal, tudo bem?

Estou com um problema onde preciso calcular dias uteis(segunda a sexta) através de uma data. Por exemplo tenho essas variáveis:

DataInicio: 01/01/2016
DataFim: Atual (06/01/2016)

Tirando sábado e domingo temos 3 dias. Preciso fazer esse calculo, não preciso calcular os feriados não interfere pra mim.

Alguém sabe como resolver isso?
Responder

Post mais votado

06/01/2016

A muitos tempo atras usei o método abaixo, que achei na internet, para calcular os dias úteis de um determinada data até a data de hoje.
Veja se consegue adaptar a sua necessidade.
Tem muto tempo que não desenvolvo em Java e nem sei se o método abaixo é a melhor forma de fazer isto ou se tem algo melhor, mas se lhe ajudar ótimo.

public static int nuDiasExecutadosUteis (Date dataInicio) {
    //Numero de dias que se passaram, sem contar com a data inicio e data fim
    //Observação: Contando que a data inicio e data fim sejam dias uteis
    int nuDiasExecutados = (int) (new Date().getTime() - dataInicio.getTime()) / 86400000;
    int totalDiasExecutadosUteis = 0;
    Calendar cal  = Calendar.getInstance();
    cal.setTime(dataInicio);
    for (int i = 1; i<= nuDiasExecutados ; i++){
        //Acrescenta mais um dia na data para poder verificar se é dia util
        cal.add(Calendar.DATE, 1);
        //Verifica se não é dia util
        if (cal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY && cal.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) {
            totalDiasExecutadosUteis +=1;
        }
    }
    return totalDiasExecutadosUteis;
}
Responder