public static DosVal<DateTime, DateTime> FechasDeComisiones(DateTime dBase) { int iDiaIni = Util.Entero(Config.Valor("Comisiones.DiaInicial")); int iDiaFin = Util.Entero(Config.Valor("Comisiones.DiaFinal")); int iDiaBase = (int)dBase.DayOfWeek; var oRes = new DosVal<DateTime, DateTime>(); oRes.Valor1 = dBase.AddDays((double)(iDiaBase <= iDiaIni ? (iDiaIni - 7 - iDiaBase) : (iDiaIni - iDiaBase))); oRes.Valor2 = dBase.AddDays((double)(iDiaBase > (iDiaFin + 1) ? (iDiaFin + 7 - iDiaBase) : (iDiaFin - iDiaBase))); // Se mandan las horas a los extremos, de 00:00 a 23:59, para que no haya problemas con los filtros oRes.Valor1 = oRes.Valor1.Date; oRes.Valor2 = oRes.Valor2.Date.AddDays(1).AddSeconds(-1); return oRes; }
public static DosVal <DateTime, DateTime> FechasDeComisiones(DateTime dBase) { int iDiaIni = Util.Entero(Config.Valor("Comisiones.DiaInicial")); int iDiaFin = Util.Entero(Config.Valor("Comisiones.DiaFinal")); int iDiaBase = (int)dBase.DayOfWeek; var oRes = new DosVal <DateTime, DateTime>(); oRes.Valor1 = dBase.AddDays((double)(iDiaBase <= iDiaIni ? (iDiaIni - 7 - iDiaBase) : (iDiaIni - iDiaBase))); oRes.Valor2 = dBase.AddDays((double)(iDiaBase > (iDiaFin + 1) ? (iDiaFin + 7 - iDiaBase) : (iDiaFin - iDiaBase))); // Se mandan las horas a los extremos, de 00:00 a 23:59, para que no haya problemas con los filtros oRes.Valor1 = oRes.Valor1.Date; oRes.Valor2 = oRes.Valor2.Date.AddDays(1).AddSeconds(-1); return(oRes); }
private void LlenarSemanas() { int iAnio = (int)this.nudAnio.Value; int iDiaIni = Util.Entero(Config.Valor("Comisiones.DiaInicial")); DateTime oFecha = new DateTime(iAnio, 1, 1).Date; int iDif = (iDiaIni - (int)oFecha.DayOfWeek); iDif += (iDif < 0 ? 8 : 0); oFecha = oFecha.AddDays(iDif); var oSemanas = new List<DosVal<DateTime, string>>(); while (oFecha.Year == iAnio) { var oSem = new DosVal<DateTime, string>(oFecha, string.Format("{0:00} {1} al ", oFecha.Day, oFecha.ToString("MMM"))); oFecha = oFecha.AddDays(6); oSem.Valor2 += string.Format("{0:00} {1}", oFecha.Day, oFecha.ToString("MMM")); oSem.Valor2 = oSem.Valor2.ToUpper(); oSemanas.Add(oSem); oFecha = oFecha.AddDays(1); } // Se agrega la semana especial de aguinaldo oSemanas.Add(new DosVal<DateTime, string>(DateTime.Now, "AGUINALDO")); this.cmbSemana.CargarDatos("Valor1", "Valor2", oSemanas); }