Somar 48 horas em dias úteis

4 respostas
java
rafaweb_caninde

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();
}

4 Respostas

staroski

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());
}
rafaweb_caninde

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

Rodrigo_Void

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

rafaweb_caninde

seria uma boa também ter isso amigo rsrsrs

Criado 1 de junho de 2017
Ultima resposta 1 de jun. de 2017
Respostas 4
Participantes 3