How can I limit my use of some time-wasting apps on my iPhone for a few days? Temporarily removing the apps so that I would have to first go through a reinstall to use them is not an option because I don't want to lose their data. There are some Mac applications to limit access to websites and other applications: Obtract and SelfControl for example. Is there anything similar for iOS?

2: Backup your iPhone and remove them from the sync list, this way yopu will not lose your data. Reinstalling the App direct from App Store will not bring your data back, meaning you need to be at your computer to sync properly in order to get your data too, which may be handy if it's at home and you are at work/school etc.

In order to make option 1 a little more palatable, you can try any number of tricks. For example, if the apps you want to a void are strewn all over the place, try to put them on teh last page, and simply ban yourself from visiting the last homescreen. This may assist in not tempting you when the app you need to use is right next to the game you shouldn't be playing. Also, you could invent some reward system to give you some motivation to not use them. If you don't use the timewasting apps homescreen all day, you get to treat yourself to an in-app purchase, or a half hour uninteruppted game slot once your works done etc. Whatever works for you.

Update: Loïc Wolff reminded me of a question I answered before that has a similar answer. In summary: "Anything you can do or install or configure in order to produce a technical block to stop you running these apps, can also be undone", so the only real answer is to work on yourself.