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