private void Adiciona_Feriados_Fim_de_semana_horas_descanso() { DateTime agora = DateTime.Now; DateTime data_programada = agora.AddMinutes(_MINUTOS); while (agora < data_programada) { if (agora.DayOfWeek != DayOfWeek.Saturday && agora.DayOfWeek != DayOfWeek.Sunday && !FERIADOS.Contains(agora)) { if (agora.Hour < 8 || agora.Hour >= 18 || agora.Hour == 12) { _MINUTOS++; } } else { _MINUTOS++; } agora = agora.AddMinutes(1); } }
private List <TEMPO_DE_FASES> Desconta_Minutos_Feriado_Fim_de_Semana_fora_do_Expediente(List <TEMPO_DE_FASES> tempo) { List <TEMPO_DE_FASES> retorno = tempo; foreach (var item in retorno) { if (item.DATA_MUDANCA.Value.Day != item.DATA_STATUS_ANTERIOR.Value.Day) { DateTime dt = item.DATA_STATUS_ANTERIOR.Value; DateTime data = new DateTime(dt.Year, dt.Month, dt.Day); while (dt < item.DATA_MUDANCA) { if (dt.DayOfWeek != DayOfWeek.Saturday && dt.DayOfWeek != DayOfWeek.Sunday && !FERIADOS.Contains(data)) { if (dt.Hour < 8 || dt.Hour >= 18 || dt.Hour == 12) { item.MINUTOS--; } } else { item.MINUTOS--; } dt = dt.AddMinutes(1); } } } return(retorno); }