private DayOfWeek TraducirDiaAlIngles(DiaCierre diaCierre)
        {
            switch (diaCierre)
            {
            case DiaCierre.Lunes:
                return(DayOfWeek.Monday);

            case DiaCierre.Martes:
                return(DayOfWeek.Tuesday);

            case DiaCierre.Miercoles:
                return(DayOfWeek.Wednesday);

            case DiaCierre.Jueves:
                return(DayOfWeek.Thursday);

            case DiaCierre.Viernes:
                return(DayOfWeek.Friday);

            case DiaCierre.Sabado:
                return(DayOfWeek.Saturday);

            case DiaCierre.Domingo:
                return(DayOfWeek.Sunday);

            default:
                throw new ArgumentOutOfRangeException("diaCierre");
            }
        }
        private DateTime TraerCortePorDiaDeLaSemana(DateTime fechaActual, PosicionCierre posicionCierre, DiaCierre diaCierre)
        {
            switch (posicionCierre)
            {
            case PosicionCierre.Primer:
                return(fechaActual.FirstMonthDay(TraducirDiaAlIngles(diaCierre)));

            case PosicionCierre.Segundo:
                break;

            case PosicionCierre.Tercer:
                break;

            case PosicionCierre.Cuarto:
                break;

            case PosicionCierre.Ultimo:
                return(fechaActual.LastMonthDay(TraducirDiaAlIngles(diaCierre)));

            default:
                throw new ArgumentOutOfRangeException("posicionCierre");
            }
            return(DateTime.Now);
        }
        public DateTime TraerFechaCorte(DateTime fechaActual, PosicionCierre posicionCierre, DiaCierre diaCierre)
        {
            if (diaCierre == DiaCierre.DiaDelMes)
            {
                if (posicionCierre == PosicionCierre.Primer)
                {
                    return(fechaActual.FirstMonthDay());
                }
                if (posicionCierre == PosicionCierre.Ultimo)
                {
                    return(fechaActual.LastMonthDay());
                }
            }
            else
            {
                return(TraerCortePorDiaDeLaSemana(fechaActual, posicionCierre, diaCierre));
            }

            return(DateTime.Now);
        }