public DateTime ObterDataDiasUteis(DateTime data, int qtdDias) { var listaFeriados = _calendarioService.ObterFeriadosNacionais(data.Year) .Where(d => d.Type.ToUpper() == "FERIADO NACIONAL"); var diasUteis = 0; var diaAux = data.AddDays(0); while (diasUteis < qtdDias) { if (diaAux.DayOfWeek != DayOfWeek.Saturday && diaAux.DayOfWeek != DayOfWeek.Sunday && !listaFeriados.Any(d => d.Date == diaAux)) { if (diasUteis == 0) { diaAux = diaAux.AddDays(1); } diasUteis++; } diaAux = diaAux.AddDays(1); } while (diasUteis > qtdDias) { if (diaAux.DayOfWeek != DayOfWeek.Saturday && diaAux.DayOfWeek != DayOfWeek.Sunday && !listaFeriados.Any(d => d.Date == diaAux)) { diasUteis--; } diaAux = diaAux.AddDays(-1); } return(diaAux); }
public int ObterQuantidadeDiasUteisAposViradaMes() { var listaFeriados = _calendarioService.ObterFeriadosNacionais(DateTime.Now.Year) .Where(d => d.Type.ToUpper() == "FERIADO NACIONAL"); var diasUteis = 0; var dataAtual = DateTime.Now; var mesAtual = dataAtual.Month; DateTime diaAux = dataAtual.AddDays(-1); while (diaAux.Month == mesAtual) { if (diaAux.DayOfWeek != DayOfWeek.Saturday && diaAux.DayOfWeek != DayOfWeek.Sunday && !listaFeriados.Any(d => d.Date == diaAux)) { diasUteis++; } diaAux = diaAux.AddDays(-1); } return(diasUteis); }