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);
        }
        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);
        }