// Metodo unico para calcular dias executados pelo tempo /*public int ApurarDias(ITempoExecucao tempoExecucao) * { * return (tempoExecucao.DataFim - tempoExecucao.DataInicio).Days; * }*/ public int ApurarDias(ITempoExecucao tempoExecucao) { int dias = 0; if (tempoExecucao.GetType() == typeof(Backup)) { dias = (tempoExecucao.DataFim - tempoExecucao.DataInicio).Days; } else if (tempoExecucao.GetType() == typeof(Projeto)) { var diasCorridos = (tempoExecucao.DataFim - tempoExecucao.DataInicio).Days; var datas = Enumerable.Range(0, diasCorridos) .Select(t => tempoExecucao.DataInicio.AddDays(t)); dias = datas.Where(t => t.DayOfWeek != DayOfWeek.Saturday && t.DayOfWeek != DayOfWeek.Sunday).Count(); } else if (tempoExecucao.GetType() == typeof(Atendimento)) { var diasCorridos = (tempoExecucao.DataFim - tempoExecucao.DataInicio).Days; var datas = Enumerable.Range(0, diasCorridos) .Select(t => tempoExecucao.DataInicio.AddDays(t)); dias = datas.Where(t => t.DayOfWeek != DayOfWeek.Sunday).Count(); } return(dias); }
public static IEnumerable <DateTime> DatasNoIntervalo(this ITempoExecucao tempoExecucao) { var diasCorridos = (tempoExecucao.DataFim - tempoExecucao.DataInicio).Days; var datas = Enumerable.Range(0, diasCorridos) .Select(t => tempoExecucao.DataInicio.AddDays(t)); return(datas); }