Before you change the battery you should check if it's not a bug in a program you've got running at startup...
I had a similar problem once when I tried a recall program... It's a program that reminds you of birthdays, important meeting etc. It really twisted my clock around so I had to change the time every time the computer had booted...
It took me a while to figure this out...
So hope it helps