Befunge-93 (206 208)
This one was fun to write. I'm sure it can be done in a better way, but… it works! =)
Can be tried out here.
Would've been even shorter if the #
would jump over entire strings rather than just the individual cell.
&1- v
vv"Mon"># :# !_
> 1- v
vv"Tues"># :# !_
> 1- v
vv"Wednes"># :# !_
> 1- v
vv"Thurs"># :# !_
> 1- v
vv"Fri"># :# !_
> 1- v
vv"Satur"># :# !_
> 1- v
vv"Sun"># :# !_
>>:#,_"yad",,,@
The basic idea behind it: Get the number and keep decrementing it. Everytime we decrement it, the cursor moves to the right, wraps around and is sent one level lower. Once we hit zero, move to the left instead and push the (first part of the) day name. From then on, the cursor will move straight to the bottom where the string is printed and "day" is appended.
You can see how it works by using the "Step" feature in the link to the online interpreter.
Edit: I managed to shave two bytes off by doing >:#,_
instead of >,,,,,,
, which is pretter as well.
invalid
if the input is invalid? The question doesn't state that but the example suggests so. \$\endgroup\$