How can I check if current day is working day

Viewed 38161

I have application that needs to be run on working days, and within working hours.

In application configuration, I've set start time in format

Monday-Friday
9:00AM-5:30PM

Now, I have a problem how to check if current day is within day boundare is (for the time is easy - parse time with DateTime.ParseExact and simple branch will do), but I don't know how to parse days.

I've tried with:

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 and sr.end_day are strings

but the problem occurred during weekend testing - apparently, in DayOfWeek enum, Sunday is first day of the week (refering to the comments on MSDN page

I suppose I could do some gymnastics with current code, but I am looking for the most readable code available.

Edit Sorry for the misunderstanding - working days are not from Monday to Friday - they are defined as strings in config file, and they can be even from Friday to Saturday - which breaks my original code.

10 Answers
Related