Well, once I was working some a function that would return a string along the lines of : "This system has been running for 1 week, 3 days, 2 hours, 1 minute, 0 seconds."
I was doing this in VB and using a DLL to retrieve the TSC (Time Stamp Counter: contains the number of clock pulses since the comp was booted). It would divide by the clock freq. (unfortunately I had to hard-code this, I don't know how to get a real value) to get the number of seconds since reboot and then use the mod statement and some multiplication and division to come up with the string. All my variables were doubles (I want this thing to work even when the computer has been booted more than 10 minutes), but I was getting an overflow error when I did this:
dim weekDivider as Double
weekDivider = 7 * 24 * 60 * 60
I was up until 4:30 AM finding the bug. It turns out that when you do math on ordinal values, VB assumes that you're putting it in an Integer data type unless you put a pound sign after each of the numbers, like this:
weekDivider = 7# * 24# * 60# * 60#
I will never understand why VB does this...