Exemple #1
0
        // 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);
        }