Olá, estou com um problema para localizar X horas úteis a partir de um determinado horário.
Por exemplo, informo o horário 15:30 e queria contar 8 horas úteis a partir desse horário, tendo em vista que vale apenas horário comercial: 8:00 até 12:00 e 13:30 até 18:00.
Fiz o seguinte código porém não funcionou:
public static Calendar adicionaHorasUteis2(int qtdeHoras, Calendar dataHoraAtual) {
final String HORA_INICIO_MANHA = "08:00";
final String HORA_FINAL_MANHA = "12:00";
final String HORA_INICIO_TARDE = "13:30";
final String HORA_FINAL_TARDE = "18:00";
final String DATA_HORA_INICIO_MANHA = Datas.formataDataHoraMin(Datas.getDataHora(Datas.formataData(dataHoraAtual), HORA_INICIO_MANHA + ":00")) + ":00";
final String DATA_HORA_FINAL_MANHA = Datas.formataDataHoraMin(Datas.getDataHora(Datas.formataData(dataHoraAtual), HORA_FINAL_MANHA + ":00")) + ":00";
final String DATA_HORA_INICIO_TARDE = Datas.formataDataHoraMin(Datas.getDataHora(Datas.formataData(dataHoraAtual), HORA_INICIO_TARDE + ":00")) + ":00";
final String DATA_HORA_FINAL_TARDE = Datas.formataDataHoraMin(Datas.getDataHora(Datas.formataData(dataHoraAtual), HORA_FINAL_TARDE + ":00")) + ":00";
int horasUteis = 1;
do {
if ((dataHoraAtual.compareTo(Datas.getDataHoraMinSegCalendar(DATA_HORA_INICIO_MANHA)) >= 0 && dataHoraAtual.compareTo(Datas.getDataHoraMinSegCalendar(DATA_HORA_FINAL_MANHA)) < 0)
|| (dataHoraAtual.compareTo(Datas.getDataHoraMinSegCalendar(DATA_HORA_INICIO_TARDE)) >= 0 && dataHoraAtual.compareTo(Datas.getDataHoraMinSegCalendar(DATA_HORA_FINAL_TARDE)) < 0)) {
dataHoraAtual.add(dataHoraAtual.HOUR, 1);
horasUteis++;
} else if (isDiaUtil(dataHoraAtual)) {
dataHoraAtual.add(dataHoraAtual.HOUR, 1);
} else {
dataHoraAtual.add(dataHoraAtual.DATE, 1);
}
} while (horasUteis <= qtdeHoras);
return dataHoraAtual;
}
Se alguém puder me ajudar, agradesceria muito…