Somar 48 horas em dias úteis

4 respostas
java
R

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

S

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

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

R

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

R

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