Somar 48 horas em dias úteis

Pesquisando aqui encontrei uma solução que soma as horas certinho mas eu tenho um problema no meu sistema tenho que somar os dias úteis sendo que sábado na empresa em que trabalho até as 12:00 é dia útil segue código incluindo o sábado como dia não útil.

public static Date adicionarDiasUteis(Date data, Integer qtdeDiasAcrescentados) {
	Calendar dataInicial = Calendar.getInstance();
	dataInicial.setTime(data);
	while(qtdeDiasAcrescentados > 0){
		dataInicial.add(Calendar.DAY_OF_MONTH, 1);
		int diaDaSemana = dataInicial.get(Calendar.DAY_OF_WEEK);
		if (diaDaSemana != Calendar.SATURDAY && diaDaSemana != Calendar.SUNDAY) {
			--qtdeDiasAcrescentados;
		}
	}
	return dataInicial.getTime();
}

Com Java 8 fica bem fácil:

public static Date adicionarDiasUteis(Date data, int diasUteis) {
	ZoneId regiao = ZoneId.systemDefault();
	LocalDateTime novaData = LocalDateTime.ofInstant(data.toInstant(), regiao);
	for (int i = 0; i < diasUteis; i++) {
		LocalDateTime diaSeguinte = novaData.plusDays(1);
		switch (diaSeguinte.getDayOfWeek()) {
			case SATURDAY:
			case SUNDAY:
				continue; // ignora sábados e domingos
		}
		novaData = diaSeguinte;
	}
	return Date.from(novaData.atZone(regiao).toInstant());
}

no caso amigo o sábado não pode ser ignorado até o meio dia

Só pra por mais lenha na fogueira, rsrs, e os feriados?

1 curtida

seria uma boa também ter isso amigo rsrsrs

1 curtida