Tengo una aplicación que debe ejecutarse en días hábiles y dentro de las horas de trabajo.¿Cómo puedo comprobar si el día actual es día laborable
En configuración de la aplicación, lo he instalado hora de inicio en formato
Monday-Friday
9:00AM-5:30PM
Ahora, tengo un problema de cómo comprobar si el día actual está dentro de los días se boundare (por el momento es fácil - analizar el tiempo con DateTime.ParseExact
y branch simple), pero no sé cómo analizar los días.
He probado con:
DayOfWeek day = DateTime.Now.DayOfWeek;
if (day >= (DayOfWeek)Enum.Parse(typeof(DayOfWeek), sr.start_day) &&
day <= (DayOfWeek)Enum.Parse(typeof(DayOfWeek), sr.end_day))
{ /* OK */ }
sr.start_day
y sr.end_day
son cadenas
pero el problema se produjo durante las pruebas de fin de semana - al parecer, en DayOfWeek
enum
, domingo es el primer día de la semana (refiriéndose a los comentarios en MSDN page
Supongo que podría hacer algo de gimnasia con el código actual, pero estoy buscando el código más legible av disponible
Editar Lo siento por el malentendido - días de trabajo no son de lunes a viernes - se definen como cadenas en el archivo de configuración, y pueden ser incluso de viernes a sábado - el cual rompe el código original.
Simplemente agregue 7 al día final si es menor que el día de inicio. Del mismo modo, agregue 7 al día si es menor que el día de inicio. –
@HansPassant, sí, esto funciona! ¡Si puede, publique la respuesta y la seleccionaré! –
Continúa y publica el código que usaste y márcalo como la respuesta. –