Today I missed class because my clock was an hour slow. The cause of this seems to be because the windows time service wasn't switched on. Seems to work fine now. Why does windows not use the hardware clock on the motherboard? What does Linux do?
Actually they do both use the hardware clock on the motherboard.
Is this machine by any chance one that you dual boot to both Windows and Linux? If it is then I suspect you have been bitten by the fact that Windows stores the time in the hardware clock as local time, and Linux stores it as UTC time by default.
So when you reboot from one to the other there may be some confusion as to the meaning of the time stored in the hardware clock.
Most linux distributions can be configured to use local time instead, in order to co-exist with Windows, although using UTC is really a much better method.