If you've been sick on and off for the last 3 weeks then I'd say off the top of my hat that you're run down. Try and rest as much as you can (like you are), drink plenty of water and get some vitamin c into you as well. Hope you start feeling better soon.