The following saves a couple of program bytes (but no RAM) when now is a structure with a byte called DayofWeek:
if ((byte)(now.DayofWeek+249)>250) ...
-vs-
if ((now.DayofWeek != 1 && now.DayofWeek != 7)) ...
It might save slightly more than that in your case, where now.dayOfTheWeek() appears to be a function reference. This technique will work if function now.dayOfTheWeek() returns a byte, that is, an unsigned char. The technique depends on value 7+249 overflowing to zero inin byte arithmetic when truncated to a byte arithmetic, because 7+249 is 0 modulo 256.
The cast to byte [or uint8_t] of now.DayofWeek+249 is needed because of int promotion as Edgar Bonet pointed out.