Escreva uma função que recebe uma data como parâmetro e um número inteiro. A data corresponderá a uma data inicial e o número inteiro a uma quantidade de dias.
O retorno da função será a data calculada, considerando a soma da data inicial mais a quantidade de dias, sem levar em consideração sábados e domingos.
import java.util.Calendar;
import java.util.Date;
public class Exemplo {
public static void main(String[] args) {
Date d1 = new Date(); // hoje
Date d2 = somarDiasUteis(d1, 2); // daqui há 2 dias úteis
System.out.printf("%td/%tm/%tY%n", d1, d1, d1);
System.out.printf("%td/%tm/%tY%n", d2, d2, d2);
}
public static Date somarDiasUteis(Date data, int diasUteis) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(data);
while (diasUteis > 0) {
calendar.add(Calendar.DAY_OF_MONTH, 1); // soma um dia
switch (calendar.get(Calendar.DAY_OF_WEEK)) {
case Calendar.SATURDAY:
case Calendar.SUNDAY:
// ignora sábados e domingos
break;
default:
// atualiza os dias úteis pendentes
diasUteis--;
break;
}
}
return calendar.getTime();
}
}