I largely agree with Jan. I've had the hiberation file get corrupted a number of times over the years, and losing a few days of work because of that wouldn't be great. I'd really not depend on it as a reliable mechanism and would design a method to pause computation before hibernating or sleeping the machine.
If you've got access to another machine (that stays up all the time) that you can run your work on, a better approach might be to run your program there, and use some remote access mechanism to to get to it and check on results. But even in that case, having intermediate check points you can resume from is a better approach, as any arbitrary system will need to be rebooted for one reason or another, and this could interrupt your calculations.
Running analysis for days also makes a program very difficult to debug and maintain since you have to wait days between iterations to know if your changes are "right".
You might want to also look into methods (refactoring, profiling your code, parallelizing, etc) that could decrease your run-time, too. Just because it takes days with the current implementation doesn't mean it always has to.