Well, there are many ways to do this. The short answer is we'll be making this easy in TurboActivate 3.3. You'll be able to pass in how often you'd like to check and let TurboActivate handle the details.
How do you recommend storing the 'date last checked' so that user cannot simply keep resetting this local date to continue use?
There are a few different ways. Cryptographcally signing the last check date is one option.