See the notice at the end if you are using an older operating system than Windows XP.
Step 1: Create a batch file
c:\windows\system32\shutdown -s -f -t 00 (or do ...shutdown -p -f)
c:\windows\system32\shutdown -r -t 00
Save it anywhere you like as shutdown (or whichever accordingly) .bat so it would be "shutdown.bat" for example.
DO NOT save as a -.bat.txt, you are then merely saving text.
Step 2: Schedule it
In Windows Vista or 7 search "task"; Task Scheduler should be at the top of the list. Open it. Click "create basic task". Type in the name you want to call it and a description if you like. Specify when you want it to start. Specify date, time, and recurrence. Choose an action (start a program). Browse for the batch file. At the end, view over it to make sure it is exactly what you want, and click finish. At the task manager main menu, you will have to refresh the list at the bottom for your new batch file to appear (this is optional, it will take affect either way). It is best for the computer to restart to take affect.
Windows XP users and older with have a slightly different process. See next step.
Step 3: Schedule it for XP and older
For computers running XP and older, follow these steps. First, open Scheduled Tasks (all programs\accessories\system tools\scheduled tasks). Add Scheduled Task; a wizard comes up. Select the batch file. Choose the conditions under which this task will perform. Give specific date, time, and recurrence. If you use a password enter it. Finish it.