you can do this by scheduling a task, don't think you can have a program running which will wake the computer at a specified time. The computer must be sleeping for it to be woken, not off.
you best bet is to write a command line app and schedule this to be kicked off using the scheduler.
Your other option is wake on lan and have a program on another machine send a magic packet to the machine you want to wake up.
I'm not sure if there are any standard libraries that allow you to create scheduled tasks in .net but this code project project seems to try and do it.