How to make sure code is executed once each day?

I want to provide the user with a number of new missions each day. To calculate if a day is passed, I’m getting the current date using System.DateTime.Now.get_Day() and subtract a date saved on Disk from the current date. If answer is > 0, a day is passed, hence new missions are available.

However this fails to work properly if the player changes the date of the system. Thus at anytime, the user can change the system date and obtain the new missions.

Is there a way to validate and make sure that new missions are obtained only daily without using a server?

If there is no way to validate this, are there any webservices to use for this purpose? And would anyone be kind enough to point me to a good one?

If you don’t have your own server something like this might help:

http://www.earthtools.org/webservices.htm

Those can be used to verify the current time / day

edit Here’s a more or less ready to use implementation in C#:

http://miromannino.com/network-time-protocol-request-in-c/

Never trust the client. Instead, use push notifications to tell connected clients that there are new things to do.